Проверка MenuItem в BottomNavigatorBar в Kotlin - PullRequest
1 голос
/ 06 февраля 2020

Я хочу, чтобы в моем приложении была кнопка, которая при нажатии успешно перемещается, как если бы пользователь нажал вторую доступную кнопку, которая является BottomNavigatorBar.

В большинстве случаев я достиг желаемого поведения, определив состояние c функция, которая вызывается из другого фрагмента, если в основном имитирует поведение sam, которое произошло бы, если бы пользователь нажал эту кнопку:

Вот его код:

  companion object
    {
        […]
        fun calledFun(it: MenuItem, binding: FragmentContainerBinding) {
            when (it.itemId) {

            R.id.nav_assets -> binding.vpPrivate.currentItem = 0
            R.id.nav_incidents -> binding.vpPrivate.currentItem = 1
            R.id.nav_profile -> binding.vpPrivate.currentItem = 2



        }

        it.isChecked=true

    }
}

Но, к несчастью, it.isChecked То, что я думаю, должен поместить соответствующий MenuItem в красный цвет, не работает, он продолжает отображаться на том же MenuItem, который был выбран, когда была нажата кнопка, которую я впервые упомянул.

Было проверено, что несмотря на это, он действительно показывает, что должно отображаться с этим MenuItem. Действительно, если я нажму MenuItem красным цветом, содержимое изменится на то, что было.

Как я могу пометить этот MenuItem, как если бы пользователь его выбрал?

1 Ответ

1 голос
/ 07 февраля 2020

Если вы хотите sh просто выбрать элемент на панели навигации, вы можете сделать что-то вроде этого

testing.setOnClickListener {
        navView.setOnNavigationItemSelectedListener(null)
        navView.menu.getItem(0).isChecked = true
        navView.setOnNavigationItemSelectedListener(this)
    }

Это похоже на то, когда вы работаете с переключателями / радиокнопками, но вы не Не хотите запускать функциональность при изменении выбранного состояния.

...