【发布时间】:2020-05-06 14:26:34
【问题描述】:
我的应用中有一个导航抽屉。 NavigationDrawer 列表中的每个条目代表一个导航图。我想标记用户当前所在的元素。
我设法让项目在被选中后被标记,直到可见片段发生变化(即使新片段仍在同一个 navGraph 中)。我通过使用NavigationView.setNavigationItemSelectedListener(NavigationView.OnNavigationItemSelectedListener listener) 设置 NavigationItemSelectedListener 来做到这一点。在这个 listeners onNavigationItemSelected(item: MenuItem): Boolean 函数中,我做:item.isChecked = true。
这样做的问题是,该项目在应用程序启动后未被选中,并且一旦片段更改,项目就会失去它的选中状态(即使 navGraph 没有更改)。我该如何正确地做到这一点?
我还尝试在应用程序启动时要检查的菜单项的 xml 声明中设置 android:checked="true"。它似乎没有做任何事情。
我还尝试在 Activity 的 onCreate 函数中设置navView.setCheckedItem(R.id.main_nav_option_one)。同样,它似乎没有做任何事情。
【问题讨论】:
-
你检查过this吗?关于使用导航控制器设置导航抽屉
-
我没有。但现在我有了,我只是有不同的问题。
标签: android navigation-drawer drawerlayout