Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在设备旋转时保持贴图状态?_Java_Android_Android Fragments_Android Mapview - Fatal编程技术网

Java 如何在设备旋转时保持贴图状态?

Java 如何在设备旋转时保持贴图状态?,java,android,android-fragments,android-mapview,Java,Android,Android Fragments,Android Mapview,我有一个嵌套片段,我希望在设备方向更改时保持该状态 是这样的: 我在嵌套片段中实例化一个mapView,当设备旋转时,用户必须在它所在的位置。 我怎样才能做到这一点 谢谢你好的,所以我犯了一个错误。 我在片段父级上调用函数setRetainInstance(true),我不应该这样做 删除该行后,将映射状态保持在设备方向非常简单。 我所要做的就是在onSaveInstanceState上保存一些值,如下所示: bundle.putDouble("lat", mMap.getCameraPosi

我有一个嵌套片段,我希望在设备方向更改时保持该状态

是这样的:

我在嵌套片段中实例化一个mapView,当设备旋转时,用户必须在它所在的位置。 我怎样才能做到这一点


谢谢你

好的,所以我犯了一个错误。 我在片段父级上调用函数setRetainInstance(true),我不应该这样做

删除该行后,将映射状态保持在设备方向非常简单。 我所要做的就是在onSaveInstanceState上保存一些值,如下所示:

bundle.putDouble("lat", mMap.getCameraPosition().target.latitude);
bundle.putDouble("lon", mMap.getCameraPosition().target.longitude);
bundle.putFloat("zoom", mMap.getCameraPosition().zoom);
bundle.getDouble("lat");
bundle.getDouble("lon");
bundle.getDouble("zoom");
然后在onCreate上,我恢复映射状态,如下所示:

bundle.putDouble("lat", mMap.getCameraPosition().target.latitude);
bundle.putDouble("lon", mMap.getCameraPosition().target.longitude);
bundle.putFloat("zoom", mMap.getCameraPosition().zoom);
bundle.getDouble("lat");
bundle.getDouble("lon");
bundle.getDouble("zoom");

您可以这样使用它,因为
CameraPosition
类实现了
Parcelable

  • 省省吧
  • onCreate()中检索它
  • 将其设置为移动相机
  • if (null != mCameraPosition) {
       mMap.moveCamera(CameraUpdateFactory.newCameraPosition(mCameraPosition));
    }