onDetach 在片段时调用

Mar*_*tin 5 android android-fragments

在方向更改后,我无法显示相同的片段。我把它放到 backstack 并弹出。它跳转到 onCreateView 等等,然后它调用 onDetach,这导致显示错误的片段..代码如下:

    //fragment
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {...}

    @Override
public void onDetach() {
    super.onDetach();
    this.getActivity().getFragmentManager().beginTransaction().addToBackStack(null);
}
Run Code Online (Sandbox Code Playgroud)

并在主要

    if (getFragmentManager().getBackStackEntryCount()>1){
        setContentView(R.layout.activity_main);
        getFragmentManager().popBackStack();
    }
Run Code Online (Sandbox Code Playgroud)

我错过了什么?提前感谢您的帮助

小智 3

每当您更改方向时,您的 Activity 都会被重新创建,因此您的 Activity 中托管的片段也会被重新创建,因此您的片段的整个生命周期方法都会被再次调用。

如果您想使用片段处理配置更改,请检查以下链接:http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html