【问题标题】:NavigationView, a way to uncheck previous selections?NavigationView,一种取消选中先前选择的方法?
【发布时间】: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

标签: android layout navigation navigation-drawer


【解决方案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;
                    }
                });

【讨论】:

  • 我已经这样做了,但是谢谢。问题是我有一个子菜单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2016-11-14
  • 1970-01-01
  • 2019-11-02
  • 2017-07-16
相关资源
最近更新 更多