DrawerLayout和NavigationView使用心得
这是在开发过程中遇到的问题,网上一直没找到很好的解决办法,所以分享出来帮助大家过坑:
用AS的朋友应该都知道,新建项目的时候可以建立一个NavigationDrawerActivity的项目,建立好以后是可以直接运行的,但是如果想在这个基础上去进一步开发的话,会报这个错误
经过多次排查,后来发现是NavigationView的heaeview不能直接在布局文件里面加载,而应该在用代码来加载,代码如下
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
headview = LayoutInflater.from(this).inflate(R.layout.view_global_menu_header, null);//填充头像布局
navigationView.addHeaderView(headview);
然后第二个问题是,NavigationView的item每次点开都会有一个默认的选中背景,这个背景比较难看
去掉的办法只要把item的setCheckable设置为false就行 代码如下
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
item.setCheckable(false);
int id = item.getItemId();
...
return true;
}
其他更多用法可以参考下面的链接
http://blog.csdn.net/u012702547/article/details/51253222