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

Lum*_*mbi 16 android fragment fragmenttransaction

我有这个简洁的功能:

private void addMapFragment(){
    if(!mapFragment.isAdded()){
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.add(R.id.mapContainer, mapFragment);
        ft.commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在打电话给addMapFragment()我的活动onCreate().然后,我从一个调用的webrequest进行回调addMapMapFragment().这个isAdded()方法看起来并没有什么用处,因为我遇到了一个崩溃说"片段已经添加:MapFragment[...]"

任何线索?

Phi*_*oda 31

FragmentTransactions异步提交.因此,你需要打电话

getFragmentManager().executePendingTransactions();
Run Code Online (Sandbox Code Playgroud)

你打电话之前

Fragment.isAdded();
Run Code Online (Sandbox Code Playgroud)

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