我在NavigationView中有一个菜单,其中有7个菜单项,根据用户设置,其中一些菜单项应该是不可见的,剩下的可见项应该按不同的顺序显示。这些项目已经在XML菜单布局中定义好了。
我已经搜索了很多,但没有与已定义的菜单项相关的内容。大多数解决方案都建议在创建菜单项时通过代码设置顺序。
这是我的菜单项XML布局:
<group android:checkableBehavior="single">
<item
android:id="@+id/Home_menuitem"
android:title="Home" />
<item
android:id="@+id/Register_menuitem"
android:title="Register" />
<item
android:id="@+id/Login_menuitem"
android:title="Login" />
<item
android:id="@+id/language_menuitem"
android:title="Language" />
<item
android:id="@+id/ContactUs_menuitem"
android:title="Contact Us" />
<item
android:id="@+id/Likes_menuitem"
android:title="Likes" />
<item
android:id="@+id/Subscription_menuitem"
android:title="Subscription" />
<item
android:id="@+id/Logout_menuitem"
android:title="Logout" />
</group>
假设我想在代码中(而不是 XML 中)更改顺序,使“Likes_menuitem”显示在“Home_menuitem”之上
findItem(int id)
获取现有的菜单项,但返回的MenuItem
没有像setOrder(int order)
这样的方法。所以也许这是唯一的方法。这并不复杂,你至少试过了吗? - cylonadd
方法中的 order 参数对我没有起作用。它总是将添加的菜单项放在最后一个位置。 - YoussefDirandroid:orderInCategory
,如果您之前已经在xml菜单文件中使用过...请参见Joe Muller在此处的评论https://dev59.com/q14b5IYBdhLWcg3wxEGm - YoussefDir