1.将fragment添加到回退栈
val transaction = supportFragmentManager.beginTransaction()
val fragment = YourFragment()
transaction.replace(R.id.fragment_container, fragment)
transaction.addToBackStack(null) // 将 Fragment 添加到回退栈,参数为 null 表示使用默认的事务名
transaction.commit()
2.弹出回退栈
supportFragmentManager.popBackStack() // 弹出回退栈中的最上层 Fragment
可以指定特定的事务名来弹出到特定的事务:
supportFragmentManager.popBackStack("transactionName", FragmentManager.POP_BACK_STACK_INCLUSIVE)
3.获取回退栈的数量
val backStackCount = supportFragmentManager.backStackEntryCount
4.清空回退栈
supportFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
5.监听回退栈的变化
supportFragmentManager.addOnBackStackChangedListener {
// 回退栈变化时的操作
}