8

ビューグループの階層と最後にグーグルマップを含む水平スクロールビューがあります。私の問題は、HSVがマップ用の左右のドラッグをキャッチしていることです。私はもう試した

    hsv.requestDisallowInterceptTouchEvent(true);

そしてさえ

    mapView.getParent().requestDisallowInterceptTouchEvent(true);

しかし、役に立たない。ここで私が間違っていることはありますか?または、別の解決策を提案できますか?

これが私の最初の質問だったはずだと思います。ここに投稿されたソリューションをScrollView内にMapviewで実装するにはどうすればよいですか。具体的には、コードをどこに配置しますか?

4

4 に答える 4

11

正しい方法のようですが、すべてのタッチイベントで requestDisallowInterceptTouchEvent(true) メソッドを呼び出す必要があります ( docsを参照)。この解決策を試してください

更新しました:

これを試してください:

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);
    }
});
于 2012-12-25T04:41:02.973 に答える
-1

マップの onTouch をオーバーライドして、常に true を返すようにしてください。

于 2012-12-24T22:14:00.043 に答える