2016-09-06 4 views
0

Я хочу показать MapView во фрагменте. Карта показана как ожидаемая, но, похоже, она отображается только как изображение. Я не могу перетаскивать, чтобы перемещать камеру или распространять/зажимать, чтобы увеличить. Я также попытался использовать SupportMapFragment в своем фрагменте, но получил тот же результат.Android MapView при замораживании фрагментов (не кликабельны или перетаскиваются) после инициализации

У меня есть NavigationView в моей деятельности. Я не думаю, что есть конфликт в сенсорном событии NavigationView и MapView.

Кто-нибудь встречал это раньше?

фрагмент

public class CustomizedMapFragment extends Fragment implements OnMapReadyCallback{ 
    MapView mapView; 
    GoogleMap googleMap; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_map, container, false); 

     mapView = (MapView) rootView.findViewById(R.id.mapView); 
     mapView.onCreate(savedInstanceState); 
     mapView.getMapAsync(this); 
     return rootView; 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     this.googleMap = googleMap; 
     this.googleMap.getUiSettings().setZoomControlsEnabled(true); 
     this.googleMap.getUiSettings().setZoomGesturesEnabled(true); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     mapView.onResume(); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     mapView.onPause(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     mapView.onDestroy(); 
    } 

    @Override 
    public void onLowMemory() { 
     super.onLowMemory(); 
     mapView.onLowMemory(); 
    } 
} 

раскладка

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <com.google.android.gms.maps.MapView 
     android:layout_margin="16dp" 
     android:id="@+id/mapView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</RelativeLayout> 
+0

Посмотрите на ответ здесь, это может помочь: http://stackoverflow.com/questions/5758081/mapview-works-incorrect –

+0

@DanielNugent Я попытался установить clickable в true, но он не работает – DemonPilot

+0

Did вы реализуете 'OnMapClickListener'? –

ответ

0

Попробуйте использовать эту UiSettings.setScrollGesturesEnabled(boolean), с помощью этого вы можете прокручивать (панорамирование) по карте, перетаскивая карту с их пальцем.

Другой способ - настроить эти параметры, когда карта создается через атрибуты XML.

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    map:cameraBearing="112.5" 
    map:cameraTargetLat="-33.796923" 
    map:cameraTargetLng="150.922433" 
    map:cameraTilt="30" 
    map:cameraZoom="13" 
    map:mapType="normal" 
    map:uiCompass="false" 
    map:uiRotateGestures="true" 
    map:uiScrollGestures="false" 
    map:uiTiltGestures="true" 
    map:uiZoomControls="false" 
    map:uiZoomGestures="true"/> 

Но для того, чтобы использовать эти пользовательские атрибуты в вашем файле макета XML, вы должны сначала добавить следующее объявление пространства имен.

xmlns:map="http://schemas.android.com/apk/res-auto" 

Для получения дополнительной информации, проверить этот documentation.

 Смежные вопросы

  • Нет связанных вопросов^_^