反击后,android mapview不显示标记

时间:2014-11-11 14:05:53

标签: android google-maps

我在一个片段中有一个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"
    />

2 个答案:

答案 0 :(得分:0)

我认为这与您的生命周期以及您实际添加标记的位置有关。

您正在OnCreate中添加它们,将该逻辑移动到OnResume。

当你转到另一个片段并从中回来时,OnCreate不会被再次调用,但是onResume。

答案 1 :(得分:0)

它只需按下缩放按钮[+] / [ - ],标记已加载但未显示