美文网首页
NavigationView的使用

NavigationView的使用

作者: 难得糊涂与君勉 | 来源:发表于2017-02-15 10:32 被阅读166次
    • 介绍
      一款专门做菜单的控件,一般和DrawerLayout一起使用。
    • 使用
      第一步,先准备一个头布局,一个菜单
    先准备一个表示头部的布局。
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
       android:layout_height="200dp">
    
       <ImageView
           android:clickable="true"
           android:id="@+id/iv"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:scaleType="centerCrop"
           android:background="#53fc77"/>//一个背景图片
       <de.hdodenhof.circleimageview.CircleImageView
           android:clickable="true"
           android:id="@+id/it"
           android:layout_width="70dp"
           android:layout_height="73dp"
           android:src="@mipmap/xlj"
            android:layout_centerInParent="true"//这里是采用了一个第三方的圆形头像
           />
    </RelativeLayout>
    一般的布局形式,可以按照自己想要的去设计,去布局。如上述布局,效果如下:
    
    Paste_Image.png

    在准备下面的菜单文件:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        
        <item
            android:id="@+id/favorite"
            android:icon="@mipmap/ic_launcher"
            android:title="收藏"
            />
        <item
            android:id="@+id/wallet"
            android:icon="@mipmap/ic_launcher"
            android:title="钱包"/>
    
        <group android:id="@+id/g2">
            <item
                android:id="@+id/photo"
                android:icon="@mipmap/ic_launcher"
                android:title="相册"/>
        </group>   //用group包裹,可以实现分割线,就是说,这个group中的内容与上,与下面的内容会出现分割线。
        <item
            android:id="@+id/file"
            android:icon="@mipmap/ic_launcher"
            android:title="文件"/>
    </menu>
    

    在布局文件中使用

     <android.support.design.widget.NavigationView
                android:id="@+id/navigation_view"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="left"   //这是和DrawerLayout配合使用时候带的
                android:fitsSystemWindows="true"
                app:headerLayout="@layout/header_layout"  //关键之一,引用头部的布局
                app:menu="@menu/main">   //关键之二,引入菜单 
     </android.support.design.widget.NavigationView>
    其中:android:fitsSystemWindows = "true":
    内置的一个布尔值属性,通过其去调整基于系统窗口的视图布局,例如状态栏,如果为true,将自动
    调整系统窗口布局来适应你自定义的布局。例如:当系统有状态栏,你的应用也存在状态栏时便可以设置为ture。
    
    • 添加点击事件
     NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view);
      navigationView.setItemIconTintList(null); //这样你在下面的菜单上的图标就会显示原本的颜色。
    
     View headerview = navigationView.getHeaderView(0); //得到头部的布局,
      heandImage = (ImageView) headerview.findViewById(R.id.iv);  //从头布局中找到里面的控件,
    可以添加点击事件
    circleImageView = (CircleImageView) headerview.findViewById(R.id.it);
    针对与下面的菜单:
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                    switch (item.getItemId()){
                        }
                    return true;
                }
            });
    在上面完成你所需要的点击事件。
    

    结果如下:

    Paste_Image.png

    相关文章

      网友评论

          本文标题:NavigationView的使用

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