Fragment isAdded()在已添加的Fragment上返回false

时间:2014-03-18 16:51:57

标签: android fragment fragmenttransaction

我有这个简洁的功能:

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[...]"

有任何线索吗?

2 个答案:

答案 0 :(得分:29)

FragmentTransactions已提交异步。因此,您需要致电

getFragmentManager().executePendingTransactions();

之前你打电话

Fragment.isAdded();

这样,您可以确保一切都是最新的

答案 1 :(得分:0)

相反,请检查getSupportFragmentManager.findFragmentById()并查看是否获得了预期的片段。如果现在你可以添加和提交。