2013-05-05 75 views
1

我已經嘗試了新的谷歌地圖API V2谷歌地圖API第2多地圖碎片問題

我已經是一個包裝了mapFragment片段,這是在應用程序的創建乞討幾個問題。

在用戶點擊一個按鈕時創建的另一個片段,這個內容另一個mapFragment。

但是,此地圖顯示了第一個片段上顯示的第一個地圖。它也被凍結,無法對其執行操作...

我讀過一些用戶有問題要顯示multimaps。任何想法如何解決這個問題?

這是我創建的地圖:

mMapFragment = (SupportMapFragment) this.getActivity().getSupportFragmentManager() 
      .findFragmentByTag(MAP_FRAGMENT_TAG); 

    // We only create a fragment if it doesn't already exist. 
    if (mMapFragment == null) { 
     // To programmatically add the map, we first create a 
     // SupportMapFragment. 
     mMapFragment = SupportMapFragment.newInstance(); 
     mMapFragment.setRetainInstance(false); 
     // Then we add it using a FragmentTransaction. 
     FragmentTransaction fragmentTransaction = this.getActivity().getSupportFragmentManager() 
       .beginTransaction(); 
     fragmentTransaction.add(R.id.ly_map, mMapFragment,MAP_FRAGMENT_TAG); 
     fragmentTransaction.commit(); 
    } else { 
     dbug.log("Restoring map"); 
     mMapFragment.setRetainInstance(false); 
     mMap = mMapFragment.getMap(); 
    } 

    // We can't be guaranteed that the map is available because Google Play 
    // services might 
    // not be available. 
    setUpMapIfNeeded(); 

回答

3

無人接聽,所以我最終贏得成功對我自己。

所以我會分享給其他同樣的問題。 它接縫,有一個錯誤,如果你有幾個片段,並嘗試實例化兩個或多個地圖(谷歌地圖)接縫採取先前保存的同一個實例,即使您使用SupportMapFragment.newInstance()

無論如何,你應該做的是在打開一個新的地圖之前總是關閉地圖,所以如果你想顯示第二個地圖,首先要用前面的地圖去掉這個片段。然後實例化一個新的並添加到通訊錄佈局。

這不是一個很好的解決方案,因爲它意味着每次打開和關閉地圖,但是我能找到的最好。

+0

我想嘗試新的嵌套片段,因爲也許可以使它工作。 – Marcel 2013-05-07 07:03:43