3

スクロールビュー内に onClickListener を持つビューがあります。ビューはクリックに反応するはずですが、スクロールビューはほとんどすべてのタッチを ACTION_MOVE として解釈し、タッチ イベントをインターセプトするため、ビューをクリックできません。

次のようにスクロールビューを変更しました(ビューページャーにあり、ビューページャーのスクロールを無効にする必要があるため)

@Override
public boolean onInterceptTouchEvent(MotionEvent p_event) {
    if (p_event.getAction() == MotionEvent.ACTION_MOVE) {
        return true;
    }
    return super.onInterceptTouchEvent(p_event);
}

@Override
public boolean onTouchEvent(MotionEvent p_event) {
    if (p_event.getAction() == MotionEvent.ACTION_MOVE && getParent() != null) {
        getParent().requestDisallowInterceptTouchEvent(true);
    }
    return super.onTouchEvent(p_event);
}

ScrollView の感度を変更して、最も小さな動きを ACTION_MOVE として登録せず、タッチ イベントをその子に渡すにはどうすればよいですか?

ご協力いただきありがとうございます!

4

1 に答える 1

2

気にしないで、私はそれを修正しました!最初の部分は必要ありません。次のようにコードを変更すると、正常に動作します。

@Override
public boolean onInterceptTouchEvent(MotionEvent p_event) {
    /*if (p_event.getAction() == MotionEvent.ACTION_MOVE) {
        return true;
    }*/
    return super.onInterceptTouchEvent(p_event);
}

@Override
public boolean onTouchEvent(MotionEvent p_event) {
    if (p_event.getAction() == MotionEvent.ACTION_MOVE && getParent() != null) {
        getParent().requestDisallowInterceptTouchEvent(true);
    }
    return super.onTouchEvent(p_event);
}
于 2013-05-15T11:37:15.793 に答える