В моем приложении есть панель навигации. Каждая запись в списке NavigationDrawer представляет собой один навигационный граф. Я хочу отметить элемент, в котором находится пользователь.
Мне удалось пометить элемент после его выбора и до тех пор, пока видимый фрагмент не изменится (даже если новый фрагмент все еще находится в том же navGraph ). Я сделал это, установив NavigationItemSelectedListener, используя NavigationView.setNavigationItemSelectedListener(NavigationView.OnNavigationItemSelectedListener listener)
. Внутри этой функции слушателей onNavigationItemSelected(item: MenuItem): Boolean
я делаю: item.isChecked = true
.
Проблема в том, что элемент не отмечен после запуска приложения, и элемент теряет свое отмеченное состояние, как только фрагмент изменяется (даже если navGraph не меняется). Как мне это сделать правильно?
Я также пытался установить android:checked="true"
в объявлении xml пункта меню, который я хочу проверять при запуске приложения. Кажется, это ничего не делает.
Я также пытался установить navView.setCheckedItem(R.id.main_nav_option_one)
в функции onCreate Activity. Опять же, похоже, ничего не происходит.