10

据我所知,MapFragment过渡动画有问题。布局上的所有视图都会立即显示,包括 MapFragment 自己的视图(如缩放按钮)。但是地图本身只有在动画完成后才会加载延迟。

为了说明问题,我做了以下事情:

  1. 我稍微更改了Google maps android API 示例中的一项活动。它通过操作项打开一个空白活动。当我点击后退按钮时,地图会被加载,但只有在转换完成之后。
  2. 我把过渡效果夸大了一点,让你能更好地看到问题。我将开发人员选项中的过渡动画速度设置为5x。即使在 1 倍速度下,这种延迟也令人不安。

观看此视频:http ://www.youtube.com/watch?v=12SEotktlXI

你有什么建议可以防止这种滞后吗?为什么所有视图都会立即加载而地图本身却没有?

测试环境:Nexus 5,Android 4.4.2,无根

编辑:当使用 MapView 而不是 MapFragment 时,也会出现此问题。

4

1 回答 1

-3

原因:这是因为一旦您设置活动将被显示,地图活动将处于其 onpause() 状态;因此,我假设 android 管理从地图活动中回收了内存。

解决方案:创建一个静态类并在那里静态声明您的地图,以避免android回收您的地图使用的内存。

前任。

//your static class
public class MapData{
  public static GoogleMap map;
}

//your map activity
public class MapActivity extends Activity{

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if(MapData.map != null)
       MapData.map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
  }
}
于 2014-02-26T04:07:14.267 回答