Android Google地图从纵向转换为横向,反之亦然

时间:2015-03-10 20:06:50

标签: android

我的应用程序仅在Google地图上显示地图。我的问题是当我改变屏幕的位置(我安装在平板电脑上的应用程序)时,在显示地图之前显示的是一个白色屏幕。

我的配置; res / layout / main.xml和res / layout-land / main.xml从纵向模式切换到横向模式。

应该添加或执行哪些操作来解决此问题?

2 个答案:

答案 0 :(得分:0)

由于您已在布局文件中指定了地图片段,因此可以使用findFragmentById中的onCreate安全地找到它,如下所示:

MapFragment mMapFragment; // this is neither GoogleMap or MapView!

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mMapFragment = (MapFragment)getFragmentManager().findFragmentById(R.id.map);
    initializeMap();
}

@Override
public void onResume() {
    super.onResume();
    // map init was already done in onCreate, will not do it twice
}

然后,当您需要GoogleMap对象时,您需要它并通过回调传递它。执行回调时,映射保证不为null。这将适用于Google Play服务库v6.5。

private void initializeMap() {
    mMapFragment.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap googleMap) {
            // googleMap will never be null here
            // do not store it in a variable, always make a getMapAsync call
            // do your map setup here
        }
    }
}

这是最快的,所以你不应该经历任何闪烁。

注意:在您提到的原始帖子中,您有不同的纵向和横向布局。如果你真的这样做,请确保两者都包含相应的片段 ID,否则你必须获得例外。您还提到布局为main.xml而不是activity_main.xml,因此请确保使用您想要的布局。

答案 1 :(得分:0)

我解决了我在阅读此问题时遇到的问题(在Android上自动重启活动)Activity restart on rotation Android