【发布时间】:2019-08-28 08:12:08
【问题描述】:
我想关闭片段内的片段。我使用以下代码从Activity 添加Fragment。
Activity -> Fragment-A -> Fragment-B
在Activity:
addFragment(AFragment(),R.id.fragment_layout,FragTag.fragA)
fun addFragment(fragment: Fragment, frameId: Int, tag:String){
supportFragmentManager.beginTransaction().apply {
setCustomAnimations(R.anim.slide_in_left,0,0,R.anim.slide_out_right)
add(frameId, fragment)
addToBackStack(tag)
}.commit()
}
在Fragment-A中,创建fragment-B
addFragment(TestBFragment(),R.id.childFragment_layout,FragTag.fragB)
private fun addFragment(fragment: Fragment, frameId: Int, tag:String) {
childFragmentManager.beginTransaction().apply {
setCustomAnimations(R.anim.slide_in_left,0,0,R.anim.slide_out_right)
add(frameId, fragment)
addToBackStack(tag)
}.commit()
}
上面的代码可以正常工作,但是使用下面的代码自行关闭fragment-B就不行了。
childFragmentManager.popBackStackImmediate()
childFragmentManager.popBackStack()
而childFragmentManager.backStackEntryCount 在fragment-B 中返回 0
我错过了什么吗?
如何通过childFragmentManager自行关闭fragment?
【问题讨论】:
标签: android android-fragments fragmentmanager