首页 > 解决方案 > 如何在android的片段中设置后退按钮的导航

问题描述

我正在开发一个包含 5 个片段的应用程序,其中一个片段名为 home 片段。我希望每当我按下任何其他片段上的后退按钮时,它只导航到主片段。请向我建议我该怎么做。?提供以下代码供参考

val expensefragment = expenseFragment()
    val notesfragment = notesFragment()
    val forumfragment =  forumFragment()
    val printfragment  =  printFragment()
    val homefragment =  homefragment()

    setCurrentFragment(homefragment)

    val bottomNavigationview  = findViewById<BottomNavigationView>(R.id.bottomNavigationView)

    bottomNavigationview.setOnNavigationItemSelectedListener { item ->
        when(item.itemId) {
            (R.id.expensebar)-> setCurrentFragment(expensefragment)
            (R.id.notesbar)-> setCurrentFragment(notesfragment)
            (R.id.printbar)-> setCurrentFragment(printfragment)
            (R.id.forumbar)-> setCurrentFragment(forumfragment)
            (R.id.homebar) -> setCurrentFragment(homefragment)
        }
        true
    }
}

private fun setCurrentFragment(fragment: Fragment){
    supportFragmentManager.beginTransaction().apply {
        replace(R.id.frameLayout,fragment)
        commit()
    }
}

标签: javaandroidkotlinandroid-fragments

解决方案


替换之后和提交之前调用以下函数

.addToBackStack(backStateName);

如果您不想给出 stack 的名称,请传递 null 或空值。这个函数将像 Intent 一样创建 backstack。


推荐阅读