Android:Google Maps API v2如何清理子SupportMapFragment

时间:2013-07-17 06:08:38

标签: android google-maps-android-api-2 supportmapfragment

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

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

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

1 个答案:

答案 0 :(得分: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);
}