带有片段事务提交的Illegalargumentexception

时间:2014-03-26 07:16:39

标签: android android-fragments fragment-tab-host fragmenttransaction

我正在使用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)

请建议我需要做出哪些改变以避免崩溃。

注意:只有在经常更改标签

时才会发生崩溃

0 个答案:

没有答案