通常,当从Activity中显示DialogFragment时,您可以执行以下操作:
MyDialogFragment myDialogFragment = MyDialogFragment.newInstance(args);
myDialogFragment.show(getSupportFragmentManager(), MY_TAG);
或者如果你在片段中,你可以这样做:
MyDialogFragment myDialogFragment = MyDialogFragment.newInstance(args);
myDialogFragment.show(getActivity().getSupportFragmentManager(), MY_TAG);
据我所知,它与第一个非常相似,因为它找到了Activity然后从中调用。
然而,再次假设我们处于片段中,通过这样做来启动DialogFragment是否有意义:
MyDialogFragment myDialogFragment = MyDialogFragment.newInstance(args);
myDialogFragment.show(getChildFragmentManager(), MY_TAG);
调用Fragment会被视为DialogFragment的父级吗?
答案 0 :(得分:0)
这是由于使用setTargetFragment然后调用getTargetFragment()
时出现的一些问题看到这篇文章及其答案 Failure saving state - target not in fragment manager (setTargetFragment)