Android - 如何将新版本的Google map api添加到片段而不是Activity?

时间:2016-07-09 14:43:05

标签: android google-maps

Google地图API的官方文档将代码放在Activity中。

但是当我搜索片段解决方案时,我发现一些解决方案使用了getMap()方法,但是这个方法已被弃用。

所以我想问的是:如何在新版Google Map API中做到这一点?

请帮帮我。非常感谢。

2 个答案:

答案 0 :(得分:0)

您应该使用getMapAsync方法而不是getMap

<强> activity_maps.xml

<fragment 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"
    android:id="@+id/map"
    tools:context=".MapsActivity"
    android:name="mypackage.MyMapFragment" />

<强> mypackage.MyMapFragment.java

public class MyMapFragment extends SupportMapFragment implements OnMapReadyCallback{
    GoogleMap mMap;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getMapAsync(this);;
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        mMap.addMarker(new MarkerOptions().position(new LatLng(40, -4)).title("My Marker"));
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(40, -4), 13));
    }
}

<强> MapsActivity.java

public class MapsActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
    }
}

答案 1 :(得分:0)

您可以通过在<application>的{​​{1}}元素中添加以下声明来指定Google Play service版本号。这会嵌入应用程序编译的Google Play服务版本。

AndroidManifest.xml方法已被弃用。您应该使用public void getMapAsync (OnMapReadyCallback callback)方法。它设置了一个回调对象,当GoogleMap实例准备好使用时将触发该回调对象。