我有这个简洁的功能:
private void addMapFragment(){
if(!mapFragment.isAdded()){
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.mapContainer, mapFragment);
ft.commit();
}
}
我在我的活动addMapFragment()
中呼叫onCreate()
。然后,我从一个调用addMapMapFragment()
的webrequest进行回调。 isAdded()
方法看起来并不实用,因为我遇到了崩溃说#34;片段已添加:MapFragment[...]
"
有任何线索吗?
答案 0 :(得分:29)
FragmentTransactions
已提交异步。因此,您需要致电
getFragmentManager().executePendingTransactions();
之前你打电话
Fragment.isAdded();
这样,您可以确保一切都是最新的。
答案 1 :(得分:0)
相反,请检查getSupportFragmentManager.findFragmentById()并查看是否获得了预期的片段。如果现在你可以添加和提交。