我如何正确标记在NavigationDrawer中选择的项目?

问题描述 投票:0回答:1

我的应用程序中有一个导航抽屉。 NavigationDrawer列表中的每个条目都代表一个导航图。我要标记用户当前所在的元素。

我设法选择了要标记的项目,直到可见的片段改变为止(即使新的片段仍在同一navGraph中)。我通过使用NavigationView.setNavigationItemSelectedListener(NavigationView.OnNavigationItemSelectedListener listener)设置NavigationItemSelectedListener做到了这一点。在此侦听器onNavigationItemSelected(item: MenuItem): Boolean函数中,我执行:item.isChecked = true

问题在于,应用程序启动后,该项目将被取消选中,并且一旦片段发生更改(即使navGraph不变),该项目就会失去其检查状态。如何正确执行此操作?

我还尝试在应用启动时要检查的菜单项的xml声明中设置android:checked="true"。它似乎什么也没做。我还尝试在Activity的onCreate函数中设置navView.setCheckedItem(R.id.main_nav_option_one)。再次,它似乎无能为力。

android navigation-drawer drawerlayout
1个回答
0
投票

您可以尝试

        navView.getMenu().getItem(index).setChecked(true)

在片段的onResume中?

© www.soinside.com 2019 - 2024. All rights reserved.