NavigationView中head布局

来源:互联网 发布:淘宝情侣睡衣哪家好 编辑:程序博客网 时间:2024/06/07 10:33

NavigationView是Google推出的MD风格支持库里的主要控件之一,一般与DrawerLayout结合使用提供侧滑菜单。
NavigationView的header布局中常用来放置用户头像、用户名等信息,所以我们必须获取到header布局中的view。
最近在使用NavigationView的时候遇到无法通过findviewbyid方法获取header布局的问题(返回值是null),经过一番周折终于解决,在这里将解决过程记录下来。

 

其实,NavigationView是一个RecyclerView(在23.1.0版本之前是ListView),header布局通常是0号元素。在Support Library v23.1.1版本中,可以使用如下方法很方便地获取到header中的view:

[java] view plain copy print?
  1. View headerLayout = navigationView.getHeaderView(0); // 0-index header  

而在23.1.0版本中,就需要通过这种方法:

[java] view plain copy print?
  1. View headerLayout =  
  2. navigationView.inflateHeaderView(R.layout.navigation_header);  
  3. panel = headerLayout.findViewById(R.id.viewId);  
  4. // panel won't be null 
0 0
原创粉丝点击