Android 地图视图-禁用四处拖动,但允许缩放
我有一个内部有3个片段的ViewPager,在外部的右侧,我想显示一个地图视图-到目前为止运行良好。但我想禁用拖动,但仍然允许用户放大/缩小-具有固定的中心。如果允许用户拖动地图,则会破坏viewpager的滚动功能。 尝试禁用clickable+focusable,但-当然-不再缩放 在stackoverflow上查看了其他问题,但到目前为止,没有一个问题提供了有效的解决方案Android 地图视图-禁用四处拖动,但允许缩放,android,android-mapview,Android,Android Mapview,我有一个内部有3个片段的ViewPager,在外部的右侧,我想显示一个地图视图-到目前为止运行良好。但我想禁用拖动,但仍然允许用户放大/缩小-具有固定的中心。如果允许用户拖动地图,则会破坏viewpager的滚动功能。 尝试禁用clickable+focusable,但-当然-不再缩放 在stackoverflow上查看了其他问题,但到目前为止,没有一个问题提供了有效的解决方案 谢谢 忽略我到目前为止所说的一切(这就是为什么我编辑了我的答案),而是在MapActivity类中使用以下代码(它工作
谢谢 忽略我到目前为止所说的一切(这就是为什么我编辑了我的答案),而是在MapActivity类中使用以下代码(它工作得很好,只是尝试了一下!):
如果您
设置可点击(false)
并添加缩放控件,则此选项不起作用?发布代码。您必须禁用postTranslate,因为我的代码不会给我们带来任何进一步的影响,因为它只是片段中的一个映射视图。如果我禁用可点击并添加缩放控件,如果有人有硬件按钮并聚焦地图,然后使用键盘或其他东西移动,它将如何表现?除此之外,我真的很想用一个固定的中心点来进行缩放。。缩放控件将是最后的选择,但收缩到缩放效果要好得多。我想我已经扩展了MapView类并覆盖了computeScroll()方法,如这里所述。您能给我一个示例说明如何做到这一点吗?我想,如果我覆盖dispatchDraw,并且只有当它是同一个中心时才“调用super”时,收缩到缩放将无法正常工作,因为在收缩时,你也经常“拖动”它,所以每次有两个指针时,我都需要覆盖触控内容“将中心重置到我的中心”,还是我的想法太复杂了?请检查我对我的答案所做的编辑,这段代码非常有效!
final GeoPoint point = new GeoPoint(latitudeE6, longitudeE6);
final MapController mapController = mapView.getController();
mapController.animateTo(point);
mapController.setZoom(6);
mapView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg1.getAction() == MotionEvent.ACTION_UP)
{
mapController.setCenter(point);
return true;
}
if(arg1.getPointerCount() > 1)
{
mapController.setCenter(point);
return false;
}
else
{
return true;
}
}
});