【发布时间】:2018-12-24 04:43:59
【问题描述】:
我跟着Android Developer documentation创建了一个抽屉式导航。
然后我想添加 2 组菜单项。一个用于用户创建的列表,另一个用于标签。由于我无法直接为组设置标题,因此我按照教程HERE 并将组包装在标签中。
我的 XML 菜单如下所示:
在 onCreate 中,我使用它的 id 找到 NavigationView,然后获取它的菜单,通过它的 id 获取第一个,获取项目的 SubMenu 并添加 MenuItems:
NavigationView navigationView = findViewById(R.id.nav_view);
Menu menu = navigationView.getMenu();
MenuItem item = menu.findItem(R.id.item_lists);
SubMenu sbLists = item.getSubMenu();
sbLists.add(0, 0, 0, "Android").setIcon(R.drawable.ic_android);
sbLists.add(0, 1, 0, "iOS").setIcon(R.drawable.ic_ios);
还有:
navigationView.setNavigationItemSelectedListener(
menuItem -> {
// set item as selected to persist highlight
menuItem.setChecked(true);
// close drawer when item is tapped
mDrawerLayout.closeDrawers();
当我单击 XML 中添加的项目时,抽屉关闭,如果我再次打开它,我可以看到该项目已被选中。 但是,在 onCreate 中添加的项目,这是我重新打开抽屉后看到的:
点击这个
没了
我尝试在 Stack Overflow 上搜索,只发现一个问题与 Navigation item's title disappeared when clicked 相同的问题,但是,解决方案是将项目文本颜色设置为黑色。这并不能解决项目未被选中的问题,也不能解决图标消失的问题。
请让我知道我做错了什么,谢谢!
编辑: 这是我的主题在 styles.xml 中的样子:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionModeOverlay">true</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="iconColor">@color/icons_light</item>
<item name="toolbarIconColor">@color/icons_light</item>
<item name="android:textColorPrimary">@color/primary_text</item>
</style>
【问题讨论】:
-
它看起来被禁用了,并没有消失。
-
它被禁用了吗?是否可以点击?
-
@forpas 它没有被禁用。我可以点击它,但没有任何显示。如果我按照类似问题的解决方案(上面链接),那么我可以看到文本。
-
可能需要在创建item的时候设置item的TextColor并将item添加到Navigation Drawer中。