我在getChildFragmentManager()
方法中以onCreate()
编程方式添加了SupportMapFragment。
当我关闭活动后重新打开应用程序时,应用程序似乎正在渲染没有标记的旧孩子SupportMapFragment
。旧的子片段也不可交互。
如何使用SupportMapFragment
解决此生命周期问题?我是否需要调用特定的分离方法或类似的东西?
答案 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);
}