NavigationView:将菜单标记为脏

时间:2015-09-25 11:57:02

标签: java android navigation-drawer android-support-library

我正在使用android.support.design.widget.NavigationView。在此视图的生命周期中,菜单项会动态更改(删除,重命名和添加)。但是,这些更改不会直接显示,而是仅在视图被销毁并再次创建后(例如,在方向更改时)。

是否有办法强制它更新菜单?

1 个答案:

答案 0 :(得分:1)

向NavigationView添加动态菜单目前是Design Support库的错误。而且我看到有人已将其报告给android bug源跟踪。所以等到bug修好了。但如果你想要临时解决方案,你可以做到。首先添加动态菜单..

navView = (NavigationView) findViewById(R.id.navView);
Menu m = navView.getMenu();
SubMenu topChannelMenu = m.addSubMenu("Top Channels");
topChannelMenu.add("Foo");
topChannelMenu.add("Bar");
topChannelMenu.add("Baz");

添加菜单后,只需写下代码..

MenuItem mi = m.getItem(m.size()-1);
mi.setTitle(mi.getTitle());

https://code.google.com/p/android/issues/detail?id=176300