android - How to add submenu items to NavigationView programmatically instead of menu xml -


i'm trying add submenu items navigationview programmatically . i'm able add items menu not submenu

adding items menu works

menu menu = mnavigationview.getmenu(); menu.add(menu.none, menu.none, index, "menu item1"); 

but adding items sub menu doesn't work

menu menu = mnavigationview.getmenu(); submenu submenu = menu.addsubmenu("sub menu title"); submenu.add(menu.none, menu.none, index, "submenu item1"); 

the trick call baseadapter.notifydatasetchanged on underlying adapter contains menu items. use reflection grab listview or loop on navigationview children until reach it.

this isn't up-to-date code, fas know google hasn't pushed recent changes support library, navigationmenupresenter.preparemenuitems called when call baseadpater.notifydatasetchanged.

but if want see recent source, can download through sdk manager. choose sources android mnc. navigate to

yourandroidsdk/sources/android-mnc/android/support/design/internal/navigationmenupresenter.java 

sources

@override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     ...     final menu menu = mnavigationview.getmenu();     (int = 0; < 4; i++) {         menu.add("menu item " + (i + 1));     }     final submenu submenu = menu.addsubmenu("submenu title");     (int = 0; < 2; i++) {         submenu.add("submenu item " + (i + 1));     }     (int = 0, count = mnavigationview.getchildcount(); < count; i++) {         final view child = mnavigationview.getchildat(i);         if (child != null && child instanceof listview) {             final listview menuview = (listview) child;             final headerviewlistadapter adapter = (headerviewlistadapter) menuview.getadapter();             final baseadapter wrapped = (baseadapter) adapter.getwrappedadapter();             wrapped.notifydatasetchanged();         }     }  } 

results

results


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -