ScrollView中的MapView不显示缩放控件

时间:2010-08-11 22:53:15

标签: android

我将一个MapView放在ScrollView中。

另外,我在地图视图中添加了缩放控制

 mapView.setBuiltInZoomControls(true);

ScrollView正确滚动,但是当我单击MapView时,不会显示缩放控件。 (大部分时间)。通常,缩放控件应显示在地图视图的底部。

似乎Android与MapView和ScrollView上的触摸(或点击)事件混淆。

我希望能够'聚焦' mapview,并显示缩放控件。

我试图禁用ScrollView的滚动功能,但它不起作用。

有什么建议吗?

非常感谢

2 个答案:

答案 0 :(得分:4)

我在10天内遇到了同样的问题,但几分钟前我得到了一个解决方案! 这是解决方案。 我做了一个自定义的MapView并覆盖了onTouchEvent()。

@Override
public boolean onTouchEvent(MotionEvent ev) {
    int action = ev.getAction();
    switch (action) {
    case MotionEvent.ACTION_DOWN:
        // Disallow ScrollView to intercept touch events.
        this.getParent().requestDisallowInterceptTouchEvent(true);
        break;

    case MotionEvent.ACTION_UP:
        // Allow ScrollView to intercept touch events.
        this.getParent().requestDisallowInterceptTouchEvent(false);
        break;
    }

    // Handle MapView's touch events.
    super.onTouchEvent(ev);
    return true;
}

答案 1 :(得分:0)

  

我将一个MapView放在ScrollView中。

这不太可行。不要将可滚动的小部件放在ScrollView中。 MapView已经知道如何滚动。