我在一个片段中有一个mapview,在我转到另一个片段并按下后退按钮后,它导航到同一个屏幕,但地图没有标记,相机也没有更新
在视图中创建 mapView =(MapView)rootView.findViewById(R.id.store_map); mapView.onCreate(savedInstanceState);
map = mapView.getMap() ;
map.setOnMarkerClickListener(this);
map.setMyLocationEnabled(true);
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(-28.362402,24.587402) , 5.0f) ;
map.animateCamera(cameraUpdate) ;
map.getUiSettings().setZoomControlsEnabled(false) ;
Marker tmpStore;
LatLng pos;
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_pin);
for(int b=0;b<5;b++)
{
try
{
pos = new LatLng(Float.parseFloat(storesForMap.get(b).getLatitude()), Float.parseFloat(storesForMap.get(b).getLongitude()));
tmpStore = map.addMarker(new MarkerOptions()
.position(pos)
.title(storesForMap.get(b).getRetailer().getName())
.icon(bitmapDescriptor)
.snippet(storesForMap.get(b).getAddress()));
stores.add(tmpStore);
}
catch(Exception e)
{
Log.v("STORE_SIZE", "add stores exception: " + e.getMessage());
e.printStackTrace();
}
}
Log.v("STORE_SIZE", "stores " + stores.size());
new getTime().execute();
map.moveCamera( CameraUpdateFactory.newLatLngZoom(new LatLng(-33.9652825, 18.8397661) , 12.0f) );
}
在我的XML中我有
<com.google.android.gms.maps.MapView
android:layout_below="@+id/llTextView"
android:id="@+id/store_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"
android:gravity="center|top"
/>
答案 0 :(得分:0)
我认为这与您的生命周期以及您实际添加标记的位置有关。
您正在OnCreate中添加它们,将该逻辑移动到OnResume。
当你转到另一个片段并从中回来时,OnCreate不会被再次调用,但是onResume。
答案 1 :(得分:0)
它只需按下缩放按钮[+] / [ - ],标记已加载但未显示