侧滑菜单(android.support.design.widget.NavigationView)
使用方法:
可以自己布局 也可以使用studio工具生成 Navigation Drawer Activity
MainActivity布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:openDrawer="start"
>
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
app:theme="@style/mNavigationDrawerStyle"
/>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
其中 app_bar_main.xml 是主页面的布局
nav_header_main.xml 是侧滑菜单的头部布局
activity_main_drawer.xml 是侧滑菜单的菜单布局
在layout中新建两个布局文件。
nav_header_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_190"
android:layout_marginTop="@dimen/dp_40"
android:background="#fff"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_10">
<!-- 自己的布局代码 -->
</LinearLayout>
activity_main_drawer.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single" >
<item
android:id="@+id/nav_userinfo"
android:icon="@mipmap/user3x"
android:title="个人信息设置"
/>
<item
android:id="@+id/nav_gallery"
android:icon="@mipmap/canyu3x"
android:title="参与记录" />
<item
android:id="@+id/nav_slideshow"
android:icon="@mipmap/duihuan3x"
android:title="兑换记录" />
<item
android:id="@+id/nav_manage"
android:icon="@mipmap/syst3x"
android:title="系统设置" />
<item
android:id="@+id/nav_app"
android:icon="@mipmap/tuijian3x"
android:title="推荐APP" />
</group>
</menu>
其实生成之后什么都有,只需要修改图标和文字即可。
这里不在多说,着重说说修改的事情。
1.修改菜单栏中的文字大小
在res目录下找到values下面的style.xml
添加代码:
<!--15sp 为菜单栏字体大小-->
<style name="mNavigationDrawerStyle" >
<item name="android:textSize">15sp</item>
</style>
然后在MianActivity的布局文件中引用
app:theme="@style/mNavigationDrawerStyle"
2.如果切图有背景颜色,直接使用上去,背景会变色,不是原切图的颜色
修改方法
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setItemIconTintList(null);
添加navigationView.setItemIconTintList(null);即可去掉自带背景颜色
网友评论