Нижняя навигация в Android работает только при двойном нажатии, - PullRequest
1 голос
/ 03 февраля 2020

Создание приложения и реализация нижней навигации путем настройки «На выбранном слушателе навигации». При нажатии значков на нижней навигационной панели я пытаюсь заменить фрагменты. Фрагменты заменяются, но при двойном щелчке. Один клик по пункту меню ничего не делает. Вот мой код '' '

class MainActivity: AppCompatActivity () {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

            setContentView(R.layout.activity_main)
   // val toolbar=app_bar as androidx.appcompat.widget.Toolbar
    //setSupportActionBar(toolbar)

 val navigation = findViewById<View>(R.id.nav_view) as BottomNavigationView
    navigation.setOnNavigationItemReselectedListener {

        when (it.itemId) {
            R.id.navigation_home -> {

                var x = supportFragmentManager
                var y = x.beginTransaction()

                var fragment = HomeFragment()
                y.replace(R.id.nav_host_fragment, fragment)
                y.addToBackStack("123")
                y.commit()


            }

            R.id.navigation_login -> {

                var x = supportFragmentManager
                var y = x.beginTransaction()

                var fragment = LoginFragment()
                y.replace(R.id.nav_host_fragment, fragment)
                y.addToBackStack("456")
                y.commit()


            }

            R.id.navigation_notifactory -> {

                var x = supportFragmentManager
                var y = x.beginTransaction()

                var fragment = NotificationFragment()
                y.replace(R.id.nav_host_fragment, fragment)
                y.addToBackStack("789")
                y.commit()


            }




        }

    }


    var x = supportFragmentManager
    var y = x.beginTransaction()

    val fragment=HomeFragment()

    y.add(R.id.nav_host_fragment,fragment)
    y.addToBackStack(null)
    y.commit()
}



}

' ''

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Вы используете navigation.setOnNavigationItemReselectedListener. повторно выберите пункт, а затем выберите его. По этой причине вы должны нажать два раза для выбора элемента. удалите это и установите navigation.setOnNavigationItemSelectedListener

0 голосов
/ 03 февраля 2020

заменить это:

    navigation.setOnNavigationItemReselectedListener {

на:

   navigation.setOnNavigationItemSelectedListener {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...