How to uncheck checked items in Navigation View?

前端 未结 12 1421
夕颜
夕颜 2020-12-15 15:48

I know it\'s possible to highlight a navigation view item by calling setCheckedItem() or return true value in onNavigationItemSelected to display t

12条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-15 16:35

    I guess someone like me use those methods just like this

    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.nav_today:
                break;
            case R.id.nav_calendar:
               navigationView.getMenu().performIdentifierAction(R.id.nav_today, 0);
               navigationView.getMenu().getItem(0).setChecked(true);//or
               navigationView.setCheckedItem(R.id.nav_today);//or
               drawerLayout.closeDrawers();
               break;
        }
        return true;
    }
    

    Trying to check R.id.nav_today after you clicked on R.id.nav_calendar, (btw: checkableBehavior="single"), unfortunately it will not work.

    That is because after your code navigationView.setCheckedItem(R.id.nav_today) be called then the R.id.nav_today will be checked immediately, but after this, your click on R.id.nav_calendar will check itself.

    That is why whatever methods you use seem never work at all. It is work, but be override immediately.

提交回复
热议问题