片段声明的目标片段不属于此 FragmentManager - Android

Posted

技术标签:

【中文标题】片段声明的目标片段不属于此 FragmentManager - Android【英文标题】:Fragment declared target fragment that does not belong to this FragmentManager - Android 【发布时间】:2020-05-21 02:41:55 【问题描述】:

我在我的DaggerFragment 中使用AppCompatDialogFragment,但是运行我的应用时出现以下错误:

java.lang.IllegalStateException: Fragment CourseTypeListDialogFragmentab0b7f3 (3d65d8c0-5c75-4b92-8002-1852a8aa58b7)  declared target fragment CoursesFragmente2a5105 (e277e6f4-7e61-4114-8eb4-d0143a07ac0c) id=0x7f0800cc that does not belong to this FragmentManager!

我像下面这样打开它:

@OnClick(R.id.btnCourseType)
fun btnCourseTypeClick()
    val fm = activity!!.supportFragmentManager
    val courseTypeListDialogFragment =
        CourseTypeListDialogFragment()
    courseTypeListDialogFragment.setCancelable(false)
    courseTypeListDialogFragment.setStyle(
        DialogFragment.STYLE_NO_TITLE,
        0
    )
    courseTypeListDialogFragment.setTargetFragment(this@CoursesFragment, 1)
    courseTypeListDialogFragment.show(fm, "")


【问题讨论】:

可能重复:***.com/questions/47045788/… 【参考方案1】:

您没有将片段添加到片段管理器中

fm.beginTransaction().replace(R.id.someFrame, courseTypeListDialogFragment).commitAllowingStateLoss()

只有这样你才能在这个片段上使用show()hide()

【讨论】:

【参考方案2】:

我删除了courseTypeListDialogFragment.setTargetFragment(this@CoursesFragment, 1),现在做得很好。

【讨论】:

以上是关于片段声明的目标片段不属于此 FragmentManager - Android的主要内容,如果未能解决你的问题,请参考以下文章

html 有关如何在任何页面上插入Nuvo Express按钮的小片段。此按钮居中对齐,并在新窗口中打开目标URL。

VSCode自定义代码片段——声明函数

VSCode自定义代码片段8——声明函数

如何让片段中的多个视图调用片段类中声明的相同 onClick 函数?

滑动到下一个片段并返回后的片段不显示任何内容

使用片段导航(导航图)导航时调用目标片段的函数/方法