Несколько фрагментов на каждой странице BottomNavigationView

Я использую BottomNavigationView с четырьмя страницами. Если я хочу добавить 4 фрагмента, это нормально, но когда я хочу заменить новый фрагмент старым фрагментом на одной из страниц BottomNavigationView и восстановить его при нажатии элемента, первый фрагмент снова открывается. Как я могу восстановить последний фрагмент? Должен ли я использовать другой FrameLayout в первом BottomNavigationView?

1 ответ

Попробуй это:

bottomNavView.setOnNavigationItemSelectedListener(object : BottomNavigationView.OnNavigationItemSelectedListener {
            override fun onNavigationItemSelected(item: MenuItem): Boolean {

                clearAllBackStack()
                when (item.itemId) {
                    R.id.itemHome -> {
                      // load fragment here
                    }

                    R.id.itemMyAccount -> {
                      // load fragment here
                    }

                    R.id.itemSettings -> {
                       // load fragment here
                    }

                    R.id.itemNotfications -> {
                        // load fragment here
                    }
                }
                return true
            }
        })

добавьте этот метод:

 fun clearAllBackStack() {
        for (i in 0 until supportFragmentManager.backStackEntryCount) {
            supportFragmentManager.popBackStack()
        }
    }

Примечание: также добавляйте фрагмент в backstack всякий раз, когда вы загружаете фрагмент, добавьте это при загрузке фрагмента: fragmentTransaction.addToBackStack(null)

Другие вопросы по тегам