如果有一些项目,则不添加android NavigationView子菜单

时间:2015-05-30 20:31:39

标签: android

好吧,我喜欢NavigationView的想法,但是在以编程方式添加菜单项和放大器方面遇到了不好的经验。子菜单

protected void inflateMenu(Menu menu){
    menu.addSubMenu(1, 2, 0, "Heading");
    menu.add(MAIN_GROUP_ID, 0, 0, "Something 2");
    menu.add(MAIN_GROUP_ID, 1, 0, "Title");

    menu.addSubMenu(1, 2, 0, "Sub Menu");
    menu.add(1, 3, 0, "Menu #1");

}

子菜单没有出现在NavigationView上,但如果我只是添加没有任何项目的子菜单,它们会出现在屏幕上,所以问题是,如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

这已在支持库的v23.0.0中修复,因此请不要忘记在更新后立即删除解决方法。

答案 1 :(得分:3)

我遇到了类似的问题并解决了如下问题: 您可以通过删除一个项目来通知NavigationView数据已更改。

首先添加一个项目然后删除它对我来说是个窍门。 添加菜单后调用以下行:

mNavigationView.getMenu().removeItem(mNavigationView.getMenu().add("").getItemId());

它并不好,但解决了这个问题。

答案 2 :(得分:2)

好吧,我找到了解决方案,我们只需要访问SELECT y1.[Week Ending Date], y1.L2N, ( SELECT Sum(y2.L2N) FROM [Occupied Apts & L2N] AS y2 WHERE y2.[Week Ending Date] <= y1.[Week Ending Date] ) AS RunL2n FROM [Occupied Apts & L2N] AS y1; ,并在填充菜单后立即调用

NavigationMenuPresenter#updateMenuView(boolean)