1

getChildFragmentManager()在我的onCreate()方法中以编程方式添加了一个 SupportMapFragment。

当我在活动关闭后重新打开应用程序时,应用程序似乎正在渲染SupportMapFragment没有标记的老孩子。旧的子片段也不能交互。

如何解决此生命周期问题SupportMapFragment?我是否需要调用特定的分离方法或类似的东西?

4

1 回答 1

1

问题与我处理子片段的方式有关。

每次父片段调用onCreate子片段时都会重新创建。

我做了以下处理我的孩子片段,但可能有更好的方法:

private static final String TAG_FRAGMENT_MAP = "TagFragmentMap";

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...
    if (savedInstanceState == null) {
        // create the fragments for the first time
        ft.add(R.id.view_flip, new SupportMapFragment(), TAG_FRAGMENT_MAP);
        ft.commit();
    }
}

// ...

public void onViewStateRestored(Bundle savedInstanceState) {
    super.onViewStateRestored(savedInstanceState);
    mMapFragment = (SupportMapFragment)findFragmentByTag(TAG_FRAGMENT_MAP);
}
于 2013-07-22T04:52:23.713 回答