BottomNavigationView的每个页面中有多个片段

问题描述 投票:0回答:1

我使用带有四页的BottomNavigationView。如果我想添加4个片段就可以了,但是当我想用一个BottomNavigationView页面中的旧片段替换新片段并在项目点击时恢复它,第一个片段再次打开。如何恢复最后一个片段?我应该在第一个BottomNavigationView中使用不同的FrameLayout吗?

android android-fragments bottomnavigationview android-framelayout
1个回答
0
投票

试试这个:

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,在加载fragment:fragmentTransaction.addToBackStack(null)时添加此片段

© www.soinside.com 2019 - 2024. All rights reserved.