在更多片段上触发onCreate

时间:2018-07-29 15:53:51

标签: android android-fragments oncreate

我在一个活动中有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;
    }
}

以这种方式崩溃

2 个答案:

答案 0 :(得分:0)

onCreate()不适合您调用。它在需要时由系统触发,此外,在实例化片段并将其附加到活动时会自动调用onCreate(),因此您的调用是不必要的。

您应该将要执行的操作放在单独的方法中,并在确定已创建所有片段时才“同时”调用该方法。

您可以先阅读https://developer.android.com/guide/components/fragments上的片段生命周期文档

答案 1 :(得分:0)

mPager.setOffscreenPageLimit(10);