是否有充分的理由为 DialogFragments 使用子片段管理器?

Posted

技术标签:

【中文标题】是否有充分的理由为 DialogFragments 使用子片段管理器?【英文标题】:Is there ever a good reason to use the Child Fragment Manager for DialogFragments? 【发布时间】:2016-08-30 14:58:52 【问题描述】:

通常在显示 Activity 中的 DialogFragment 时,您会这样做:

MyDialogFragment myDialogFragment = MyDialogFragment.newInstance(args);             
myDialogFragment.show(getSupportFragmentManager(), MY_TAG);

或者如果你在一个片段中,你可以这样做:

MyDialogFragment myDialogFragment = MyDialogFragment.newInstance(args);             
myDialogFragment.show(getActivity().getSupportFragmentManager(), MY_TAG);

据我所知,这与第一个非常相似,因为它找到了 Activity,然后从中调用。

但是,再次假设我们在 Fragment 中,通过这样做来启动 DialogFragment 是否有意义:

MyDialogFragment myDialogFragment = MyDialogFragment.newInstance(args);             
myDialogFragment.show(getChildFragmentManager(), MY_TAG);

调用 Fragment 是否会被视为 DialogFragment 的父级?

【问题讨论】:

【参考方案1】:

这是由于使用 setTargetFragment 然后调用 getTargetFragment() 时出现的一些问题

查看此帖子及其答案 Failure saving state - target not in fragment manager (setTargetFragment)

【讨论】:

以上是关于是否有充分的理由为 DialogFragments 使用子片段管理器?的主要内容,如果未能解决你的问题,请参考以下文章

是否有任何陷阱或充分的理由不使用 autosproc 进行存储过程调用?

是否有充分的理由对字符串使用文化敏感的比较器?

是否有充分的理由在 C 中始终将定义括在括号中?

是否有充分的理由在单平台系统上使用 .proto 文件?

在 2017 年使用 Meteor 有充分的理由吗? [关闭]

是否有充分的理由避免在 JS 中没有最终表达式的 FOR 循环?