2016-02-15 4 views
1

Вчера я выполнил 2 учебника для реализации компонента NavigationView для моего ящика вместо использования ListView. Поскольку это намного умнее, мне было интересно, есть ли интегрированный способ отслеживания выбранного элемента и когда вы выбираете новый, старый выбор удаляется?NavigationView, способ снять отметку с предыдущих выборов?

Или мы должны реализовать эту логику? Должен ли я просто сохранить 2 целых числа с идентификатором выбранного элемента, один oldSelection и один newSelection и снять отметку со старого?

Предложения приветствуются, спасибо!

Учебники:

http://www.viralandroid.com/2015/08/android-navigation-drawer-view.html https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer

+0

Вы используете пользовательский список для отображения списка меню? –

+0

Как я объяснил в своем вопросе, я использую NavigationView вместо ListView – iBobb

ответ

2

NavigationView делает это для вас, когда у выбрать новый пункт старый элемент удаляется и новый выбран.

Примечание:

То, что это не будет работать для SubMenu если и добавить любой

+0

Спасибо! Это именно то, что происходит, мое подменю получает эту функциональность из NavigationView. Поэтому пока (возможно, они это исправит) мы реализуем свою собственную логику для подменю. – iBobb

+0

рад, что я мог бы помочь –

+0

@ iBobb какая логика вы использовали для снятия отметки с подменю? Я придерживаюсь аналогичной ситуации. – kds23

1

Попробуйте добавить "menuItem.setChecked (истинный);" в «setNavigationItemSelectedListener»:

navigationView.setNavigationItemSelectedListener(
       new NavigationView.OnNavigationItemSelectedListener() { 
        @Override 
        public boolean onNavigationItemSelected(MenuItem menuItem) { 

         displayView(menuItem); 

         menuItem.setChecked(true); 
         drawerLayout.closeDrawers(); 
         return true; 
        } 
       }); 
+1

Я уже сделал это, но спасибо. Проблема в том, что у меня есть подменю. – iBobb

Смежные вопросы