android 添加侧边菜单栏

侧滑栏的添加:

什么是侧滑栏?大家应该很清楚就类似QQ,打开主界面从手机最左侧向右一划就会出来侧滑,以下图为例向大家简单介绍侧滑栏的使用:

            

1.布局里的侧滑控件:切记将侧换控件NavigationView放在DrawerLayout中

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/windowBackground">
   <!--左侧导航菜单-->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/windowBackground"
        app:headerLayout="@layout/navigation_header"
        app:menu="@menu/drawer" />  <!--menu里是第二条的文件名,即侧滑菜单的布局文件-->
</android.support.v4.widget.DrawerLayout>

2.接下来要写好侧滑后的菜单界面,添加item(文件名:drawer.xml)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/navigation_item_user"
            android:icon="@drawable/account"
            android:title="用户管理" />
      
        <item
            android:id="@+id/navigation_item_logout"
            android:icon="@drawable/exit_to_app"
            android:title="退出" />
         <!--随意添加菜单选项-->
    </group>
</menu>

3.Java文件:

private DrawerLayout mDrawerLayout;//侧边菜单视图
private NavigationView mNavigationView;//侧边菜单项
private MenuItem mPreMenuItem;

这里是写出了菜单里所有item点击事件,你可以随意自定义,我这里只是点击之后跳转到其他界面而已

ps:在主函数里还要设置一下侧滑点击图标,如下红色部分,自己设置即可

侧滑可以实现点击图标和直接右划两种方式

  private void setNavigationViewItemClickListener() {
        //设置侧滑监听事件
        mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            
            //区别每一个item做的监听事件
            @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                if (null != mPreMenuItem) {
                    mPreMenuItem.setChecked(false);
                }
                //item.getItemId()是被点击item的ID
                switch (item.getItemId()) {
                    case R.id.navigation_item_user:
                        Intent intent1=new Intent(MainActivity.this,change_password.class);
                        startActivity(intent1);
                        break;
                    case R.id.navigation_item_addbook:
                        Intent intent2=new Intent(MainActivity.this,pingjia.class);
                        startActivity(intent2);
                        break;
                  

                    default:
                        break;
                }
                item.setChecked(true);
                //关闭抽屉即关闭侧换此时已经跳转到其他界面,自然要关闭抽屉
                mDrawerLayout.closeDrawer(Gravity.LEFT);
                mPreMenuItem = item;
                return false;
            }
        });
    }

其实侧滑很简单,没有什么技术含量,我也是初学者,大神勿喷,就是想分享一下!!!

  • 16
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值