我正在使用TabHost开发一个应用程序,它包含4个不同的Tabviews。每个tabview包含使用以下代码添加的不同片段视图
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.tabcontent, fragment);
ft.commit();
第3个标签包含Google Maps View扩展的SupportMapFragment。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.map_layout, container,
false);
//Calls Asynctask to fetch map location details from server
return view;
}
从AsyncTask onPostExecute,以下代码用于在Google地图上绘制标记:
mFragment = new SupportMapFragment() {
@Override
public void OnActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if ((map = mFragment.getMap()) != null) {
setUpMap();
}
}
};
FragmentManager mangaer = this.getActivity()
.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = mangaer
.beginTransaction();
fragmentTransaction.add(R.id.new_map_layout, mFragment);
fragmentTransaction.commit();
现在,当我第一次添加地图片段时,一切正常,mapview将在Tab视图上绘制。但是在测试应用程序时,频繁更改选项卡没有任何延迟,应用程序从第3个选项卡崩溃,并在transaction.com中出现以下错误:
E / AndroidRuntime(4392):java.lang.IllegalArgumentException:无视图 找到id为0x7f060218的片段CustomMap $ 4 {42e3cea0#3> ID = 0x7f060218}
E / AndroidRuntime(4392):at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:865)
请建议我需要做出哪些改变以避免崩溃。
注意:只有在经常更改标签
时才会发生崩溃