Android中的Fragment嵌套Fragment

实现如图的效果,Fragment嵌套代码怎么写?
2024-12-23 05:32:19
推荐回答(3个)
回答1:

  1.fragment嵌套fragment时出现getActivity()为null
  activity A嵌套fragment B,B嵌套fragment C,C跳转到activity D,当activity D被finish掉之后,C中容易爆出getActivity为空.如果你的activity被回收了,那你需要在bundle中保存一下fragment信息,我的解决方法:fragment实例化之后会到activity的fragmentManager中注册一下,这个动作封装在fragment中的onAttach(Activity activity)方法中,可以直接在onAttach(Activity activity)方法中去赋值

  2.fragment嵌套fragment时没有执行子fragment的onActivityResult方法
  activity A嵌套fragment B,B嵌套fragment C,C通过startActivityForResult跳转到activity D,当activity D被finish掉之后,没有执行C的onActivityResult
  其实这个问题也不是每个人都会遇到,当activity A和Fragment B不重写onActivityResult方法,可能就不会出现这个问题,但是我的activity A重写了onActivityResult方法,所以当activity D被销毁的时候,直接去执行activity 的onActivityResult,其实这个问题也很简单,只是遇到的时候可能想不到,解决方案就是在Activity中的onActivityResult方法中加入super.onActivityResult(requestCode, resultCode, data);一切都ok了

  Activity的onActivityResult方法:

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
 
  fragment的onActivityResult方法:

  public void onActivityResult(int requestCode, int resultCode, Intent data) {
  
 

回答2:

fragment没有嵌套一说,通过fragment管理者add remove等操作可以来实现上面功能

回答3:

第一次听说这样的使用法