ユーザーが Android ScrollView でスクロールできないようにしたいのですが、スクロール ビュー内にあるボタンをタップすると検出されます。
私は ScrollView クラスをサブクラス化し、メソッドonInterceptTouchEvent
とonTouchEvent
メソッドをいじっていますが、完全に正しく理解できないようです。以下のコードはスクロールを停止しますが、タップを無効にしているようです (ただし、何も動かさずに上下に移動する場合は機能しますが、タップ時に指がわずかに動く場合は登録されません)。またonInterceptTouchEvent
、ほとんど機能する も削除しましたが、ユーザーが指を離してもスクロールビューはスクロールします。
@オーバーライド public boolean onInterceptTouchEvent(MotionEvent ev) { App.log("onInterceptTouchEvent、アクション: " + ev.getAction()); スイッチ (ev.getAction()) { ケース MotionEvent.ACTION_MOVE: true を返します。 } super.onInterceptTouchEvent(ev) を返します。 } @オーバーライド public boolean onTouchEvent(MotionEvent ev) { App.log("onTouchEvent、アクション: " + ev.getAction()); スイッチ (ev.getAction()) { ケース MotionEvent.ACTION_MOVE: false を返します。 } super.onTouchEvent(ev) を返します。 }