淘先锋技术网

首页 1 2 3 4 5 6 7

在android studio中使用,导包

<pre style="font-family: Consolas; font-size: 12pt; background-color: rgb(255, 255, 255);"><span style="color: rgb(0, 128, 0); "><strong></strong></span><pre name="code" class="html">compile 'com.android.support:design:23.2.0'
compile 'com.android.support:appcompat-v7:23.1.0'

 
 导包就不解释了 

在23.0.1之前,使用android.support.design.widget.NavigationView是这样的姿势

<android.support.design.widget.NavigationView
        android:id="@+id/vNavigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/transparent"
        app:headerLayout="@layout/view_global_menu_header"
        app:itemIconTint="#8b8b8b"
        app:itemTextColor="#666666"
        app:menu="@menu/drawer_menu"/>
在布局文件中通过自定义属性,直接指定menu的头部布局,但是在23.1之后就失效了,大概翻看源代码,menu解析到的list由listview变成了recycleview,可能是recycleview就包含了addHeader类型的方法

简单粗暴的mark下怎么用:

去掉布局文件中的

app:headerLayout="@layout/view_global_menu_header"

MenuFragment中

nav = (NavigationView) view.findViewById(R.id.vNavigation);
        View headerView = nav.inflateHeaderView(R.layout.view_global_menu_header);
        if (headerView.getParent()!=null){
            ViewGroup parent = (ViewGroup) headerView.getParent();
            if (parent != null) {
                parent.removeView(headerView);
            }
        }
        nav.addHeaderView(headerView);

如果要获取headerView中的控件,需要headerView.findviewbyid(),谨记