android开发 fragment嵌套调用常见错误,Android Fragment 嵌套使用报错

在新的SDK每次创建activity时,会自己主动生成

public static class PlaceholderFragment extends Fragment

fragment模块,在该模块的基础上进行嵌套fragment代码例如以下:

public static class PlaceholderFragment extends Fragment {

static FragmentManager fm;

public PlaceholderFragment() {

fm=getChildFragmentManager();

}

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View rootView=LayoutInflater.from(getActivity())

.inflate(R.layout.tab, null);

if(fm.findFragmentByTag("haha")==null)

{

Fragment1 f1=new Fragment1();

fm.beginTransaction().add(R.id.frame_tab,f1,"haha").commit();

}

return rootView;

}

结果报错例如以下:

6ee73335187a9122ba69aef205a55df0.png

总之就是说Acitivity被被销毁了。

原因:fm=getChildFragmentManager();在 PlaceholderFragment 的构造函数中调用,此时它还没有创建onCreate,自然获取不到Fragment及activity了,因此将其写入

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

fm=getChildFragmentManager();

}

错误解决,大家一定要对Fragment及activity生命周期注意啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值