NavigationView的使用

简介:

NavigationView是Google在Android5.0之后,推出的左侧侧拉菜单控件。

如何使用:

item布局文件

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
            android:id="@+id/gesturePassword"
        android:checkable="true"
        android:icon="@mipmap/ic_launcher"
        android:textSize="16sp"
        android:title="设置手势密码" />
            android:id="@+id/line1"
        android:checkableBehavior="none">
                    android:id="@+id/help"
            android:checkable="true"
            android:icon="@mipmap/ic_launcher"
            android:textSize="16sp"
            android:title="帮助中心" />
                    android:id="@+id/serialnumber"
            android:checkable="true"
            android:icon="@mipmap/ic_launcher"
            android:textSize="16sp"
            android:title="乾坤锁序列号" />
    
            android:id="@+id/line2"
        android:checkableBehavior="none">
                    android:id="@+id/share"
            android:checkable="true"
            android:icon="@mipmap/ic_launcher"
            android:textSize="16sp"
            android:title="推荐给好友" />
                    android:id="@+id/update"
            android:checkable="true"
            android:icon="@mipmap/ic_launcher"
            android:textSize="16sp"
            android:title="检查更新" />
                    android:id="@+id/feedback"
            android:checkable="true"
            android:icon="@mipmap/ic_launcher"
            android:textSize="16sp"
            android:title="反馈问题" />
                    android:id="@+id/about"
            android:checkable="true"
            android:icon="@mipmap/ic_launcher"
            android:textSize="16sp"
            android:title="关于APP" />
    
            android:id="@+id/Loginout"
        android:checkable="true"
        android:icon="@mipmap/ic_launcher"
        android:textSize="16sp"
        android:title="注销手机" />
    



head布局文件

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
            android:layout_width="match_parent"
        android:layout_height="120dp"
        android:background="#9999cc"
        android:orientation="vertical">

                    android:layout_width="match_parent"
            android:layout_height="90dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:orientation="horizontal">

                            android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:gravity="center_vertical"
                android:orientation="horizontal">

                                    android:id="@+id/iv_head"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:clickable="false"
                    android:enabled="true"
                    android:src="@mipmap/ic_launcher" />

                                    android:id="@+id/tv_phonenumber"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:clickable="true"
                    android:enabled="true"
                    android:textColor="#111111"
                    android:textSize="18dp" />
            
        
    
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="#888888"/>


使用

xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/id_drawer_layout"
    android:layout_width="match_parent"
    android:fitsSystemWindows="true"
    android:layout_height="match_parent">

            android:background="#ffffff"
        android:id="@+id/id_nv_menu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:menu="@menu/menu_drawer_item"/>

代码

mDrawerLayout = (DrawerLayout) findViewById(R.id.id_drawer_layout);
NavigationView mNavigationView = (NavigationView) findViewById(R.id.id_nv_menu);
mNavigationView.setNavigationItemSelectedListener(this);
View headerLayout = mNavigationView.inflateHeaderView(R.layout.menu_header_item);
TextView maskPhoneNmber = (TextView) headerLayout.findViewById(R.id.tv_phonenumber);
maskPhoneNmber.setText("13146236551");

实现

implements NavigationView.OnNavigationItemSelectedListener

@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
    mDrawerLayout.openDrawer(GravityCompat.START);
    String flag ;
    switch (menuItem.getItemId()) {
        case R.id.gesturePassword://手势密码
            flag = "手势密码";
            break;
        case R.id.help://帮助
            flag = "帮助";
            break;
        case R.id.feedback://反馈
            flag = "反馈";
            break;
        case R.id.about://关于
            flag = "关于";
            break;
        case R.id.serialnumber://乾坤锁序列号
            flag = "乾坤锁序列号";
            break;
        case R.id.update://检查更新
            flag = "检查更新";
            break;
        case R.id.share://分享
            flag = "分享";
            break;
        case R.id.Loginout://注销
            flag = "注销";
            break;
        default:
            flag = "未知";
            break;
    }
    UIThreadUtil.showToast(MainActivity.this,flag);
    menuItem.setCheckable(false);
    mDrawerLayout.closeDrawers();
    return true;
}

问题解决:

1.侧拉栏icon和文字间距太小

name="design_navigation_icon_padding">5dp

2.点击item松开后,不释放选中状态

menuItem.setCheckable(false);

3.icon过大

抠图时多加些透明边距

4.icon颜色加重了

mNavigationView.setItemIconTintList(null);





你可能感兴趣的:(android,UI)