您的位置:首页 > 移动开发 > Android开发

安卓 Material Design Library 23.2.0使用导航控件的变化

2016-07-14 16:58 369 查看
在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(),谨记
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  materialdesign android