代码之家  ›  专栏  ›  技术社区  ›  dev90

如何使所选项目在底部导航中可单击

  •  0
  • dev90  · 技术社区  · 5 年前

    我有一个底部导航,我检查所选项目的选择,这防止它再次选择相同的项目。

    所以如果我在主屏幕上再次单击主屏幕导航项,它不会做任何事情。

    我有一个情况,我需要使家庭导航项目可选择,即使它已经选择。

    这是我在onCreate方法中运行的代码。

    public void updateNavigationBarState() {
        int actionId = getNavigationMenuItemId();
        selectBottomNavigationBarItem(actionId);
    }
    
    
    void selectBottomNavigationBarItem(int itemId) {
        Menu menu = bottomNavigationView.getMenu();
        for (int i = 0, size = menu.size(); i < size; i++) {
            MenuItem item = menu.getItem(i);
            boolean shouldBeChecked = item.getItemId() == itemId;
            if (shouldBeChecked) {
                item.setChecked(true);
                item.setEnabled(false);
                break;
            }
        }
    }
    

    是否有任何方法可以使项目即使被选中也可以单击。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Sk Suraj    5 年前

    使用 设置导航项SelectedListener 如下所示

    navigationView.setNavigationItemSelectedListener(menuItem -> {
                    switch (menuItem.getItemId()) {
                        case R.id.menuItemId:
                            // do your stuff here
                            return true;
                        default:
                            return true;
                    }
                });