Android在片段中保存谷歌地图状态

时间:2017-02-06 06:38:53

标签: android google-maps android-fragments

我在片段中使用谷歌地图。地图第一次完美加载但是当我试图回到包含来自另一个片段的谷歌地图的片段时,它崩溃并出现以下错误。

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" />

为了解决这个问题,我删除了onPause中的地图片段

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

但问题是,如果我这样做谷歌地图每次重新加载。它重绘标记。我想要的是当我浏览其他片段时,我想保存谷歌地图状态。

1 个答案:

答案 0 :(得分:-1)

实际上,你也可以在xml文件中使用FrameLayout,然后在其中添加片段。然后在你的Activity类中,

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

希望有所帮助