ScrollView正在捕捉谷歌地图的触摸事件

use*_*613 7 android android-layout

我有一个水平滚动视图,其中包含视图组的层次结构,然后最终是一个谷歌地图.我的问题是HSV正在捕捉对地图意味着的左右拖动.我试过了

    hsv.requestDisallowInterceptTouchEvent(true);
Run Code Online (Sandbox Code Playgroud)

乃至

    mapView.getParent().requestDisallowInterceptTouchEvent(true);
Run Code Online (Sandbox Code Playgroud)

但无济于事.我有什么问题吗?或者你能建议另一个解决方案?

我认为这应该是我原来的问题:如何在ScrollView中实现Mapview中发布的解决方案.具体来说,我在哪里放置代码?

Ale*_*kov 11

看来你是正确的,但你应该在每个触摸事件上调用requestDisallowInterceptTouchEvent(true)方法(参见文档).试试这个解决方案

更新:

试试这个:

final HorizontalScrollView hsv = ...
final MapView mapView = ...

mapView.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_MOVE:
                hsv.requestDisallowInterceptTouchEvent(true);
                break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                hsv.requestDisallowInterceptTouchEvent(false);
                break;
        }
        return mapView.onTouchEvent(event);
    }
});
Run Code Online (Sandbox Code Playgroud)