天天看點

Android自帶抽屜布局中NavigationView的動态生成

這兩天寫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()      

擷取菜單後,動态修改菜單内容。