互联网上充斥着不同问题的答案(如何对组中的项目进行排序?答案是使用 OrderInCategory。我的问题是如何对组本身进行排序或排序?
在我的应用程序中,我必须以编程方式添加/删除每个组中的菜单项,以及一次显示/隐藏整个组。
我的设置如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:id="@+id/nav_menu_stuff1">
</group>
<group android:id="@+id/nav_menu_stuff2">
</group>
<group android:id="@+id/nav_menu_stuff3">
</group>
<group android:id="@+id/nav_menu_stuff4">
</group>
</menu>
然后在代码中添加/删除:
getMenu().add(R.id.nav_menu_stuff1, some_id, 0, some_name);
getMenu().removeItem(some_id);
以及一次显示/隐藏整个组:
getMenu().setGroupVisible(R.id.nav_menu_stuff1, stuff1_is_visible);
getMenu().setGroupVisible(R.id.nav_menu_stuff2, stuff2_is_visible);
getMenu().setGroupVisible(R.id.nav_menu_stuff3, stuff3_is_visible);
getMenu().setGroupVisible(R.id.nav_menu_stuff4, stuff4_is_visible);
对我来说,问题是 Android 不维护组的顺序。在某些时候,我会清除中间组中的所有项目(例如 stuff2),然后重新添加项目。当我这样做时,该组最终会出现在 NavigationView 的底部。这不是我想要的。
如何维持群组秩序?
最佳答案
试试这个
使用可见的 true/false 而不是添加/删除
navigationView = (NavigationView) findViewById(R.id.nav_view);
Menu nav_Menu = navigationView.getMenu();
nav_Menu.findItem(R.id.nav_settings).setVisible(false);
关于java - 如何在 Android NavigationView 菜单中对组进行排序/排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49788017/