Gon*_*alo 30 android android-fragments android-nested-fragment
我有Fragment一个FrameLayout.该第一个片段(A)在其Framelayout内加载另一个片段(B).当我getParentFragment从内部片段(B)调用时,我得到了null.该方法应该如何正确使用?
小智 33
在我的例子中,尽管我的fragmentA嵌套在fragmentB中,但是在FragmentA中调用getParentFragment之后我仍然得到null.最后我发现我应该在FragmentB中使用getChildFragmentManager而不是getFragmentManager.
检查getSupportFragmentManager()和getChildFragmentManager()有什么区别?
小智 7
有帮助的一件事是,在创建适配器时使用getChildFragmentManager().
如果您没有使用适配器,则只需getChildFragmentManager()在进行事务时使用即可。
setTargetFragment()不推荐,因为它会在moveState()片段上给出错误(因为片段应该绑定到 FragmentManager)
我遇到了同样的问题,并通过在父片段中托管第二个片段来解决问题,getChildFragmentManager()然后您将不会获得空值...
父片段
SignUpFragment signUpFragment = new SignUpFragment();
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.contentPanel, signUpFragment)
.addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)
子片段:我使用的是一个对话框
HospitalCardDialog hospitalCardDialog = new HospitalCardDialog();
hospitalCardDialog.show(getChildFragmentManager(), "");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30782 次 |
| 最近记录: |