android 侧滑菜单

这里使用的是md的NavigationView配合DrawerLayout完成侧滑效果。

布局文件如下所示,drawerlayout作为最外面的布局,第一个布局是主页面布局,第二个则是侧滑栏的布局。

 

其中headerLayout是侧滑栏的头部,头部布局如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="200dp"
    android:background="@drawable/bg_nav_header"
    >
    <ImageView
        android:id="@+id/iv_header"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/icon_my2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="60dp"
        />
    <TextView
        android:id="@+id/tv_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/iv_header"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="8dp"
        android:textColor="@color/white"
        android:textSize="@dimen/ts_primary"
        />
</RelativeLayout>

menu指的是侧滑栏下面的选项列表,这个需要在res中新建一个menu文件夹,然后填写自己需要的信息,menu信息如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/nav_change_pwd"
        android:icon="@drawable/icon_change_pwd"
        android:title="修改密码"
        android:iconTint="@color/theme_primary"
        />
    <item
        android:id="@+id/nav_exit"
        android:icon="@drawable/icon_exit"
        android:title="退出"
        android:iconTint="@color/black"
        />
</menu>

然后添加侧滑栏列表的点击事件:

nv.setNavigationItemSelectedListener(this);

这样就基本完成了侧滑功能,效果如图所示:

注意点:

1.侧滑列表的图标默认是灰色的,如果需要用图片自己的颜色,需要在代码中设置

nv.setItemIconTintList(null);,注意在xml中设置不管用。
如果想自定义图片和字体颜色,可以在NavigationView中通过
app:itemTextColor="@color/black"
app:itemIconTint="@color/black"

批量修改的,也可以在menu的item中通过

android:iconTint="@color/black"设置单个图片的颜色,使用这个需要nv.setItemIconTintList(null);。

2.NavigationView需要在布局文件的最下面,就是NavigationView下面不能有别的控件,否则点击事件可能会无效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值