示例中心
功能在线体验
控制台

Android Fragment 加载地图

Android Fragment 加载地图示例

00:00 / 01:00
扫描二维码在手机端体验功能
体验移动端 扫码体验移动端

使用场景

示例展示如何在Android Fragment 中加载地图组件,并且如何合理的管理生命周期。

用到产品

Android 地图 SDK

核心类/接口

暂无

核心难点

示例中的地图用采用TextureMapView,TextureMapView可以有效实现Fragment切换动画效果。

Fragment切换时采用replace()方法,也可以采用hide()/show()方法。如果采用hide()/show()方法切换,地图是叠在一起的,GlSurfaceView叠放会出现穿透现象,建议使用TextureMapView避免这个问题。同时,采用TextureMapView,也可以避免Fragment切换动画时出现的黑边问题,或者是replace时有黑屏闪一下的问题。

MapView和TextureMapView的区别是:TextureMapView由TextureView实现,而MapView是通过GLSurfaceView实现的。

小建议:由于MapView的效率较高,在平常的地图使用中,建议您还是使用MapView。如果对页面切换动画等要求较高可以考虑采用Fragment实现。

Fragment生命周期方法重写:

    /**
     * 方法必须重写
     */
    @Override
    public void onResume() {
        super.onResume();
        textureMapView.onResume();
    }

    /**
     * 方法必须重写
     */
    @Override
    public void onPause() {
        super.onPause();
        textureMapView.onPause();
    }

    /**
     * 方法必须重写
     */
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        textureMapView.onSaveInstanceState(outState);
    }

    /**
     * 方法必须重写
     */
    @Override
    public void onDestroy() {
        setCameraPosition(aMap.getCameraPosition());//保存地图状态
        super.onDestroy();
        textureMapView.onDestroy();
    }