2015-09-25 173 views
0

我正在使用android.support.design.widget.NavigationView。在此視圖的生命週期中,菜單項會動態更改(刪除,重命名和添加)。但是,這些更改不會直接顯示,而只能在視圖被銷燬並重新創建後(例如,在方向更改時)。NavigationView:將菜單標記爲髒

有沒有辦法強制它更新菜單?

回答

1

將動態菜單添加到NavigationView目前是設計支持庫上的錯誤。而且我看到有人已經將它報告給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

+0

不幸的是這並沒有我的情況下工作;我有三個從xml構建的菜單,我以編程方式添加和刪除項目。按照建議設定標題並不會強制子菜單重新繪製;我發現的另一個解決方案是在導航菜單中添加另一個臨時子菜單並再次將其刪除,但不幸的是,這種解決方案也無濟於事。 – heyarne

相關問題