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

时间:2019-03-02 09:10:15

标签: android android-fragments bottomnavigationview android-framelayout

我使用具有四个页面的 BottomNavigationView 。如果要向其中添加4个片段,可以,但是当我要在 BottomNavigationView 页面之一中用旧片段替换新片段并在单击项目时将其还原时,第一个片段再次打开。如何还原最后一个片段?我应该在第一个 BottomNavigationView 中使用不同的 FrameLayout 吗?

1 个答案:

答案 0 :(得分: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()
        }
    }

注意:每当您加载片段时,也会向后堆栈添加片段,在加载片段时将其添加到后退:fragmentTransaction.addToBackStack(null)