Google Maps .getMap() deprecated

Jul*_*kli 1 java maps android gradle

I am using Google Maps on my Android App. Before a gradle the new version of Google Play Services it works with the following code to get the Fragment:

GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
Run Code Online (Sandbox Code Playgroud)

自从我更新到版本 9.2.1 以来,.getMap() 是红色的(已弃用)。有没有新的做法来声明fragment?

谢谢你的每一个回应?

May*_*gar 6

您应该将 getMap() 替换为 getMapAsync()。

根据官方文档,获取地图异步需要回调,这是您主要处理谷歌地图内容的地方。看看下面的片段。

 public class MapPane extends Activity implements OnMapReadyCallback {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map_activity);

    MapFragment mapFragment = (MapFragment) getFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap map) {
//DO WHATEVER YOU WANT WITH GOOGLEMAP
 map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        map.setMyLocationEnabled(true);
        map.setTrafficEnabled(true);
        map.setIndoorEnabled(true);
        map.setBuildingsEnabled(true);
        map.getUiSettings().setZoomControlsEnabled(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这对你有帮助。