我知道可以通过调用 setCheckedItem()
或在 onNavigationItemSelected
中返回真值来突出显示导航视图项,以将该项目显示为所选项目,但是如何取消选中 a 的选中项目导航视图?
原文由 Hafez Divandari 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道可以通过调用 setCheckedItem()
或在 onNavigationItemSelected
中返回真值来突出显示导航视图项,以将该项目显示为所选项目,但是如何取消选中 a 的选中项目导航视图?
原文由 Hafez Divandari 发布,翻译遵循 CC BY-SA 4.0 许可协议
我看到@arsent 解决方案并试了一下,它确实会做你想做的,即取消选择所有项目……但是,我在以下场景中遇到了问题:
NavigationView#setCheckedItem
)NavigationView#setCheckedItem
)在这种情况下,项目 1 不会被标记为已选中。这是因为导航视图在内部跟踪在第 1 步中设置的先前选择的项目,这在第 2 步中不会更改,并且它只是跳过第 3 步,因为先前选择的项目与我们现在选择的项目相同。
我的建议(和替代解决方案)避免这种情况只是有一个虚拟的不可见项目并使用 NavigationView#setCheckedItem
在你想取消选择所有项目时选择该项目,就像这样
<item
android:id="@+id/menu_none"
android:title=""
android:visible="false"/>
取消选择所有只是做
mNavigationView.setCheckedItem(R.id.menu_none);
原文由 Joao Sousa 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答953 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答834 阅读✓ 已解决
2 回答943 阅读
2 回答883 阅读
1 回答817 阅读
1 回答864 阅读
这将取消选中项目: