Ton*_*780 16 android android-maps android-fragments android-fragmentactivity
我正在使用新的GoogleMaps API(v2)并且片段存在一些问题.我的应用程序(Map,List)中有两个片段,用户可以在它们之间切换.到目前为止使用此代码正常工作:
if (itemPosition == 0) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentpos, myMapFragment).commit();
} else if (itemPosition == 1) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentpos, myListFragment).commit();
}......
Run Code Online (Sandbox Code Playgroud)
当我使用地图时,切换到列表片段,然后返回到地图片段,不保存地图的最后位置.这不是我想要的,我希望地图处于保存状态,因为我"离开"它..我怎么能完成这个?我试图保存相机的位置
public void onSaveInstanceState(Bundle outState){
outState.putDouble("LAT", mMap.getCameraPosition().target.latitude);
outState.putDouble("LON", mMap.getCameraPosition().target.longitude);
outState.putFloat("BEAR", mMap.getCameraPosition().bearing);
...
Run Code Online (Sandbox Code Playgroud)
}
并在onCreateView()中恢复它,但Bundle始终为null.如果我替换片段,则不会调用onSaveInstanceState.
那么如何保存地图的状态呢?
Com*_*are 17
我怎么能做到这一点?
如果你replace()是一个片段,那么旧片段的视图就会被破坏,这会取出你的MapView,或者可能是你的CameraPosition.
onSaveInstanceState()主要用于配置更改,例如屏幕旋转.MapFragment并且SupportMapFragment已经保留了CameraPosition(其中,顺便说Parcelable一下,所以你可以将整个对象保存在Bundle而不是零碎).
您可以考虑使用show()而hide()不是代替replace(),因此片段及其视图可以使用.
| 归档时间: |
|
| 查看次数: |
11465 次 |
| 最近记录: |