Android 谷歌地图API手势不工作(缩放旋转…)

Android 谷歌地图API手势不工作(缩放旋转…),android,google-maps,pinchzoom,Android,Google Maps,Pinchzoom,编辑:我发现了我的问题,请参见下面的答案 原创帖子: 我正在创建一个包含地图的活动,但无法添加缩放和其他手势功能。我可以双击放大,我可以添加+/-符号通过放大 googleMap.getUiSettings().setAllGesturesEnabled(true); 这是我的代码: 活动的xml(tracking_order.xml) 谢谢你评论这句话 googleMap.getUiSettings().setZoomGesturesEnabled(true); //not working

编辑:我发现了我的问题,请参见下面的答案

原创帖子:
我正在创建一个包含地图的活动,但无法添加缩放和其他手势功能。我可以双击放大,我可以添加+/-符号通过放大

googleMap.getUiSettings().setAllGesturesEnabled(true);
这是我的代码:

活动的xml(tracking_order.xml)

谢谢你评论这句话

googleMap.getUiSettings().setZoomGesturesEnabled(true); //not working
googleMap.getUiSettings().setAllGesturesEnabled(true);
现在你试试看,它会起作用的。如果您需要任何特定的或很少的手势方式,请通过单独启用,否则,如果您需要全部,请拨打此电话

googleMap.getUiSettings().setZoomGesturesEnabled(true); //not working
googleMap.getUiSettings().setAllGesturesEnabled(true);
评论这行

googleMap.getUiSettings().setZoomGesturesEnabled(true); //not working
googleMap.getUiSettings().setAllGesturesEnabled(true);
现在你试试看,它会起作用的。如果您需要任何特定的或很少的手势方式,请通过单独启用,否则,如果您需要全部,请拨打此电话

googleMap.getUiSettings().setZoomGesturesEnabled(true); //not working
googleMap.getUiSettings().setAllGesturesEnabled(true);

我终于发现了问题:
包含
mapFragment
的活动正在扩展自定义类。该类已重写以下方法:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_UP) {
        return super.dispatchTouchEvent(ev);
    }
    if (ev.getPointerCount() > 1)  //here was the problem
        return true;
    return super.dispatchTouchEvent(ev);
}
因此,我创建了一个方法并将其更改为:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_UP) {
        return super.dispatchTouchEvent(ev);
    }
    if (ev.getPointerCount() > 1 && !enableMultiTouch())
        return true;
    return super.dispatchTouchEvent(ev);
}

protected boolean enableMultiTouch(){
    return false;  //and override it to true in my activity
}

希望对某人有所帮助:)

我终于找到了问题:
包含
mapFragment
的活动正在扩展自定义类。该类已重写以下方法:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_UP) {
        return super.dispatchTouchEvent(ev);
    }
    if (ev.getPointerCount() > 1)  //here was the problem
        return true;
    return super.dispatchTouchEvent(ev);
}
因此,我创建了一个方法并将其更改为:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_UP) {
        return super.dispatchTouchEvent(ev);
    }
    if (ev.getPointerCount() > 1 && !enableMultiTouch())
        return true;
    return super.dispatchTouchEvent(ev);
}

protected boolean enableMultiTouch(){
    return false;  //and override it to true in my activity
}

希望它能帮助某人:)

在我的例子中,它有助于设置
map.getUiSettings().setAllGesturesEnabled(true)和覆盖生命周期方法,如中所述:


在我的例子中,它帮助设置
map.getUiSettings().setAllGesturesEnabled(true)和覆盖生命周期方法,如中所述:


起初,我试着不使用这三行中的任何一行。然后我尝试了
setZoomControlsEnabled
,但这不是我所需要的,然后我分别尝试了其他两个,但都不起作用。然后我把它们都放在这里,问了这个问题。首先,我试着不使用这三行中的任何一行。然后我尝试了
setZoomControlsEnabled
,但这不是我所需要的,然后我分别尝试了其他两个,但都不起作用。然后我把它们都放在这里问了这个问题