2017-02-06 50 views
3

我在片段中使用谷歌地圖。地圖加載第一次完美,但是當我試圖回到包含來自另一個片段的谷歌地圖的片段時,它崩潰並出現以下錯誤。Android在片段中保存谷歌地圖狀態

android.view.InflateException: Binary XML file line #14: Error inflating class fragment 

這裏是初始化片段

SupportMapFragment fragment 

而且在onCreateView

fragment = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map); 
    fragment.getMapAsync(this); 

而對於佈局

<fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

代碼。爲了解決這個問題的代碼,我刪除的映射片段這樣

getChildFragmentManager().beginTransaction() 
     .remove(fragment).commit(); 

但問題是,如果我這樣做谷歌地圖重新加載每次。它重繪標記。我想要的是當我瀏覽其他片段時,我想保存谷歌地圖狀態。

+0

請張貼的代碼片段 –

+0

@AjayShrestha感謝,但我已經發布。你在說哪個片段代碼? –

+0

關於崩潰時的異常的更多信息? – AssIstne

回答

0

其實你也可以在xml文件裏面使用FrameLayout,然後在其中添加片段。然後在你的Activity類,

SupportMapFragment f = (SupportMapFragment) 
       getSupportFragmentManager().findFragmentByTag(tag); 
if(f != null){ 
    //remove fragment 
    //add fragment 
} 

希望它可以幫助