Android 片段不';t在backback中注册

Android 片段不';t在backback中注册,android,fragmenttransaction,fragment-backstack,Android,Fragmenttransaction,Fragment Backstack,我有以下方法 //更改片段扩展函数以轻松处理导航 fun changeFragment(fragmentManager:fragmentManager?,@IdRes containerId:Int,fragment:fragment?,addToBackStack:Boolean=false){ if(fragmentManager==null | | fragment==null)返回 val fragmentTransaction=fragmentManager.beginTransact

我有以下方法

//更改片段扩展函数以轻松处理导航
fun changeFragment(fragmentManager:fragmentManager?,@IdRes containerId:Int,fragment:fragment?,addToBackStack:Boolean=false){
if(fragmentManager==null | | fragment==null)返回
val fragmentTransaction=fragmentManager.beginTransaction()
if(addToBackStack)fragmentTransaction.addToBackStack(null)
fragmentTransaction.replace(containerId,fragment,fragment::class.java.simpleName).commit()
}
我在我的一块碎片里用它-


类检查片段:片段(R.layout.Fragment\u检查){
覆盖已创建的视图(视图:视图,保存状态:捆绑?){
super.onViewCreated(视图,savedInstanceState)
检查适配器=检查适配器{检查->
变化片段(
parentFragmentManager,R.id.fragment\u检查\u框架\u布局,
InspectionDetailsFragment.newInstance(检查),true
)
}
}
}
类InspectionDetailsFragment:Fragment(){
伴星{
fun newInstance(检查:检查):检查详细信息片段{
val-inspectionDetailsFragment=inspectionDetailsFragment()
val bundle=bundle()
捆绑。可包装(一般约束。检查,检查)
inspectionDetailsFragment.arguments=bundle
退货检验明细表碎片
}
}
}
问题是,当我实例化“InspectionDetailsFragment”层中的一个片段并按下back键时,它会直接返回到“InspectionFragment”父级

我不明白为什么会这样


有人有想法吗?

当调用changeFragment函数时,您正在传递true作为最后一个参数:

changeFragment(
            parentFragmentManager, R.id.fragment_inspection_frame_layout,
            InspectionDetailsFragment.newInstance(inspection), true
        )
在changeFragment函数中:

if (addToBackStack) fragmentTransaction.addToBackStack(null)
它不会添加到backbackback中。我认为应该传递字符串值作为要使用的backbackback的名称,而不是null

我不是100%确定。您可以从这里阅读有关片段事务的更多信息: