刚写完一个侧滑菜单,记录下来,方便以后复习(日常)

一、布局文件:

1、主布局(DrawerLayout ):

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:id="@+id/drawerlayout"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.haiyuan1995.slidemenu.MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">

        <TextView
            android:id="@+id/tv_open"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打开侧滑菜单"
            android:textSize="30sp"/>

    </LinearLayout >
     //导航栏视图
    <android.support.design.widget.NavigationView
        android:id="@+id/nv_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        app:itemTextColor="#526923"//设置标题文字颜色
        app:itemIconTint="#c2143d"//设置标题图标颜色
        app:headerLayout="@layout/navi_head"//头布局
        app:menu="@menu/menu_drawer"/>//导航栏菜单
</android.support.v4.widget.DrawerLayout>

2、头布局栏:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:text="zwt_UseDesignDemo" />
</LinearLayout>

3、导航菜单栏:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group>
        <item
            android:id="@+id/menu_mon"
            android:icon="@mipmap/ic_launcher"
            android:title="Mon" />
        <item
            android:id="@+id/menu_tues"
            android:icon="@mipmap/ic_launcher"
            android:title="Tues" />
        <item
            android:id="@+id/enu_wed"
            android:icon="@mipmap/ic_launcher"
            android:title="Wed" />
        <item
            android:id="@+id/nu_thurs"
            android:icon="@mipmap/ic_launcher"
            android:title="Thurs" />
        <item
            android:id="@+id/menufri"
            android:icon="@mipmap/ic_launcher"
            android:title="Fri" />
        <item
            android:id="@+id/meu_wed"
            android:icon="@mipmap/ic_launcher"
            android:title="Wed" />
        <item
            android:id="@+id/menu_thrs"
            android:icon="@mipmap/ic_launcher"
            android:title="Thurs" />
        <item
            android:id="@+id/menu_ri"
            android:icon="@mipmap/ic_launcher"
            android:title="Fri" />
        <item
            android:id="@+id/menu_wed"
            android:icon="@mipmap/ic_launcher"
            android:title="Wed" />
        <item
            android:id="@+id/menu_thurs"
            android:icon="@mipmap/ic_launcher"
            android:title="Thurs" />
        <item
            android:id="@+id/menu_fri"
            android:icon="@mipmap/ic_launcher"
            android:title="Fri" />
    </group>

    <!--二级菜单-->
    <item android:title="weekend">
        <menu>
            <item
                android:id="@+id/menu_sa"
                android:icon="@mipmap/ic_launcher"
                android:title="Sat" />
            <item
                android:id="@+id/menu_su"
                android:icon="@mipmap/ic_launcher"
                android:title="Sun" />
            <item
                android:id="@+id/menu_sat"
                android:icon="@mipmap/ic_launcher"
                android:title="Sat" />
            <item
                android:id="@+id/menu_sun"
                android:icon="@mipmap/ic_launcher"
                android:title="Sun" />
            <item
                android:id="@+id/mnu_s"
                android:icon="@mipmap/ic_launcher"
                android:title="Sat" />
            <item
                android:id="@+id/menu_s"
                android:icon="@mipmap/ic_launcher"
                android:title="Sun" />
            <item
                android:id="@+id/menusat"
                android:icon="@mipmap/ic_launcher"
                android:title="Sat" />
            <item
                android:id="@+id/menusun"
                android:icon="@mipmap/ic_launcher"
                android:title="Sun" />
            <item
                android:id="@+id/mensat"
                android:icon="@mipmap/ic_launcher"
                android:title="Sat" />
            <item
                android:id="@+id/menuun"
                android:icon="@mipmap/ic_launcher"
                android:title="Sun" />
        </menu>
    </item>
</menu>

二、代码部分:

public class MainActivity extends AppCompatActivity {
    private DrawerLayout drawerLayout;
    private NavigationView navigationView;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化
        init();
        initListener();
    }

    private void init() {
        textView = (TextView) findViewById(R.id.tv_open);
        drawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout);
        navigationView = (NavigationView) findViewById(R.id.nv_layout);
        //设置导航栏的图标的颜色为原来的颜色
//        navigationView.setItemIconTintList(null);
    }

    private void initListener() {
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //打开侧滑菜单
                drawerLayout.openDrawer(GravityCompat.START);
            }
        });
             //设置导航栏的标题点击监听事件
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                selectItem(item.getItemId());
               //设置二级标题可点击,貌似没成功!
                item.setCheckable(true);
              //关闭侧滑菜单
                drawerLayout.closeDrawers();
                return true;
            }
        });
    }

    private void selectItem(int itemId) {
        switch (itemId) {
            case R.id.menu_mon:
                Toast.makeText(MainActivity.this, "点击Mon", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_tues:
                Toast.makeText(MainActivity.this, "点击Tues", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_wed:
                Toast.makeText(MainActivity.this, "点击Wed", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_thurs:
                Toast.makeText(MainActivity.this, "点击Thurs", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_fri:
                Toast.makeText(MainActivity.this, "点击Fri", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_sat:
                Toast.makeText(MainActivity.this, "点击 Sat", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_sun:
                Toast.makeText(MainActivity.this, "点击 Sun", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
    }
}

记得添加依赖:

compile 'com.android.support:design:24.2.0'

转载于:https://my.oschina.net/heyongrui/blog/739978

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值