在带有标签的onCreateView()中使用谷歌地图片段

时间:2015-04-23 08:13:19

标签: android android-maps-v2

我的FragmentActivity扩展ActionBar.TabListener有两个标签。

在我的第一个标签中,我试图显示GoogleMap

如何在我的onCreateView()方法中执行此操作?这是我的代码:

public class MapFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_map, container, false);
        this.ctx = container.getContext();

        GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

        return rootView;
    }
}

这段代码让我对getMap()

感到厌恶
  

对于MapFragment类型

,方法getMap()未定义

这是我的XML布局fragment_map.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

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

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我愿意打赌你升级你的GooglePlayServices库。

  

公共最终GoogleMap getMap()

     

不推荐使用此方法。

     

改为使用getMapAsync(OnMapReadyCallback)。回调方法为您提供了一个保证非空并准备好使用的GoogleMap实例。

您现在需要使用getMapAsync(OnMapReadyCallback callback)代替getMap()