我在一个活动中有10个片段。在导航期间,每个Fragment onCreate方法都会在所选片段的前一个和后一个片段上触发。每个片段都包含在onCreate方法中,该代码在我的代码中应该异步调用以恢复日期,但是这样我就不能同时启动每个片段。它是否退出任何方法以触发另一个片段中的每个onCreate方法。对于模块化问题,我不会从主要活动中解决这种情况。
我想同时启动10个片段的onCreta方法
这是一个普通的片段类型,就像没有异步调用一样,我尝试在onCreate上调用另一个片段:
public class MainFragmentLDash1 extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Toast.makeText(getContext(), "dash1", Toast.LENGTH_LONG).show();
FragmentManager fm = getFragmentManager();
MainFragmentLImp2 fragm = (MainFragmentLImp2)fm.findFragmentByTag("firstFragmentWrapperImp2");
fragm.onCreate(null);
}
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.fragment_main_dash1, container, false);
return v;
}
public static MainFragmentLDash1 init(int position) {
MainFragmentLDash1 f = new MainFragmentLDash1();
Bundle b = new Bundle();
b.putInt("msg", position);
f.setArguments(b);
return f;
}
}
以这种方式崩溃
答案 0 :(得分:0)
onCreate()不适合您调用。它在需要时由系统触发,此外,在实例化片段并将其附加到活动时会自动调用onCreate(),因此您的调用是不必要的。
您应该将要执行的操作放在单独的方法中,并在确定已创建所有片段时才“同时”调用该方法。
您可以先阅读https://developer.android.com/guide/components/fragments上的片段生命周期文档
答案 1 :(得分:0)
mPager.setOffscreenPageLimit(10);