美文网首页安卓开发技术汇
侧滑菜单(NavigationView)的使用以及简单设置

侧滑菜单(NavigationView)的使用以及简单设置

作者: 不朽大叔丶 | 来源:发表于2019-07-21 17:25 被阅读0次

    侧滑菜单(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);即可去掉自带背景颜色

    相关文章

      网友评论

        本文标题:侧滑菜单(NavigationView)的使用以及简单设置

        本文链接:https://www.haomeiwen.com/subject/catvlctx.html