Android谷歌地图:在MapFragment中禁用拖动

62

当用户用手指拖动地图时,我能否禁用拖动功能,而不影响放大和缩小?

请有经验的人给出实现这一点的建议! 感谢您宝贵的帮助!!

7个回答

114

您可以使用以下方式在MapFragment中禁用拖动:

googleMap.getUiSettings().setScrollGesturesEnabled(false);

99

我认为这就是您要找的内容:

Google Maps Android v2内部:

滚动(平移)手势

用户可以通过用手指拖动地图来在地图上滚动(平移)。您可以通过调用 UiSettings.setScrollGesturesEnabled(boolean) 来禁用滚动。


谢谢!这真是太有帮助了!! - Mahe
1
链接已损坏。 - mrisek
1
更新链接:https://developers.google.com/maps/documentation/android-sdk/controls - jeprubio
请尝试这个链接:https://dev59.com/N2Qn5IYBdhLWcg3wP1NU#60665420 - Mujahid Khan

16

要禁用MapFragment中的拖动,请使用以下代码:

googleMap.getUiSettings().setScrollGesturesEnabled(false);

如@tomrozb所说,它可以正常工作。 但是它不能通过在地图上触摸来禁用地图缩放。为此,请在上述代码旁使用以下代码:

googleMap.getUiSettings().setZoomGesturesEnabled(false);

第二秒关于缩放的内容很有用。+1 - Uzair Qaiser

8
您可以使用isScrollGesturesEnabled来控制地图的滚动手势。 Java: googleMap.getUiSettings().setZoomGesturesEnabled(false); Kotlin:
googleMap?.uiSettings?.isScrollGesturesEnabled = false

6
您可以使用以下代码在MapFragment中禁用拖拽功能:
    mMap.getUiSettings().setScrollGesturesEnabled(false);
    mMap.getUiSettings().setZoomGesturesEnabled(false);
    mMap.getUiSettings().setScrollGesturesEnabledDuringRotateOrZoom(false);

2

您不需要在代码中设置此项。您可以从XML配置手势:

<fragment
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:id="@+id/mapFragment"
    map:uiScrollGestures="false" />

除了 uiScrollGestures,您还可以设置 uiZoomGesturesuiTiltGesturesuiRotateGestures
请参阅 XML 属性 文档。

0
可以在 onMapReady 类中实现:
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        //Hide zoom controls or buttons
        mMap.getUiSettings().setZoomControlsEnabled(false);
        //Restrict zoom gestures
        mMap.getUiSettings().setZoomGesturesEnabled(false);
    }```

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接