首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapFragment,GoogleMap .getMap()

MapFragment,GoogleMap .getMap()
EN

Stack Overflow用户
提问于 2015-08-04 15:26:39
回答 2查看 628关注 0票数 1

当我试图创建一个.getMap()对象(返回null)时,我在让GoogleMap工作时遇到了很多困难,我四处看看,看到人们遇到了类似的问题,但是他们中的任何一个都找不到任何帮助。在它的当前实现中,如何找到MapFragment &从它创建一个GoogleMap

代码语言:javascript
复制
protected void setFragment(){
    FragmentManager fm = getFragmentManager();
    MapFragment mapFragment =  MapFragment.newInstance();
    fm.beginTransaction().replace(R.id.fragment_container, mapFragment).commit();

    try{
        GoogleMap gMap = ((MapFragment)fm.findFragmentById(R.id.fragment_container)).getMap();
        gMap.setBuildingsEnabled(true);
    }catch(Exception e){  }

}

包含fragment_container的XML部分

代码语言:javascript
复制
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:id="@+id/selectionLayout">


    <RelativeLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="85dp">


    </RelativeLayout>

</RelativeLayout>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-04 15:40:12

在开始使用之前允许加载Map,否则会得到null。当映射准备好使用时,您就有了onReady回调。

代码语言:javascript
复制
protected void setFragment(){
    FragmentManager fm = getFragmentManager();
    MapFragment mapFragment =  MapFragment.newInstance();
    fm.beginTransaction().replace(R.id.fragment_container, mapFragment).commit();

    try{
        mapFragment.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap map) {
                //your map related actions.
            }
        });
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}
票数 2
EN

Stack Overflow用户

发布于 2015-08-04 15:35:22

实际上,您需要在布局中包含一个片段(而不是相对布局),如下所示:

代码语言:javascript
复制
<fragment
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment" />
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31813278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档