这两天写APP《儒释道网络电台》APP时,要用到两边侧滑抽屉菜单。最终选择了官方模板的解决方案,使用了 DrawerLayout 加上两上 NavigationView。
但还需要动态生成侧滑抽屉菜单的内容,也就是修改NavigationView,而直接用下面的代码返回NULL
ListView lv = (ListView) findViewById(R.id.lv_programs);
经过在网上不断寻,最终找到找解决方法。需要在NavigationView中获取headerView,然后再从headerView中查找ListView。代码如下:
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
View headerView = navigationView.getHeaderView(0);
ListView lv = (ListView) headerView.findViewById(R.id.lv_programs);
上面是动态生成或修改navigationView.getMenu() ,如果想要修改菜单,可使用
navigationView.getMenu()
获取菜单后,动态修改菜单内容。