NavigationView,一种取消选中先前选择的方法?
Posted
技术标签:
【中文标题】NavigationView,一种取消选中先前选择的方法?【英文标题】:NavigationView, a way to uncheck previous selections? 【发布时间】:2016-05-26 08:12:29 【问题描述】:昨天我按照 2 个教程为我的抽屉实现了 NavigationView
组件,而不是使用 ListView
。由于它更智能,我想知道是否有一种集成方式来跟踪选择了哪个项目,当你选择一个新项目时,旧的选择会被删除?
或者我们应该实现那个逻辑?我是否应该只保留 2 个带有所选元素 ID 的整数,一个 oldSelection
和一个 newSelection
并取消选中旧的?
欢迎提出建议,谢谢!
教程:
http://www.viralandroid.com/2015/08/android-navigation-drawer-view.html https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer
【问题讨论】:
您是否使用自定义列表视图来显示菜单列表? 正如我在问题中解释的那样,我使用的是 NavigationView,而不是 ListView 【参考方案1】:NavigationView
为您执行此操作,每当您选择新项目时,旧项目将被删除并选择新项目。
注意:
如果你添加任何子菜单,这对子菜单不起作用
【讨论】:
谢谢!这正是正在发生的事情,我的子菜单正在从 NavigationView 接收此功能。所以现在(可能他们会解决这个问题)我们为子菜单实现我们自己的逻辑。 @iBobb 你用什么逻辑取消选中子菜单?我遇到了类似的情况。【参考方案2】:尝试添加“menuItem.setChecked(true);”在“setNavigationItemSelectedListener”中:
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener()
@Override
public boolean onNavigationItemSelected(MenuItem menuItem)
displayView(menuItem);
menuItem.setChecked(true);
drawerLayout.closeDrawers();
return true;
);
【讨论】:
我已经这样做了,但是谢谢。问题是我有一个子菜单。以上是关于NavigationView,一种取消选中先前选择的方法?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式(VS 6)取消突出显示 MFC CListCtrl 中先前选择的行?