5

から「ジョイスティック」を作りましたImageView。の中にありScrollViewます。

それはなくても動作しますScrollViewが、内部では垂直方向の動きScrollViewを受け取りません。TouchEvents

ScrollViewタッチイベントのブロックを停止するにはどうすればよいですか?

4

3 に答える 3

6

私はここで解決策を見つけました。

ロックされているかどうかを示すブール値を持つカスタムScrollViewクラスを作成しました。onInterceptTouchEventメソッドはオーバーライドされます。

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (!mScrollable) return false;
    return super.onInterceptTouchEvent(ev);
}

ジョイスティックに触れると(ACTION_DOWN)、カスタムScrollViewがロックされます。ATCTION_UPイベントでは、ロックが解除されます。

于 2013-02-16T22:46:00.640 に答える
6

必要に応じてオンとオフを切り替えたいと思うでしょう..

getParent()。requestDisallowInterceptTouchEvent (真)。

なぜスクロールビューにジョイスティックがあるのか​​ 正確にはわかりません.ジョイスティックもビューでスクロールするはずですか?これが意図されたものである場合、上記のルートが最善の解決策になります。ビューでスクロールすることが想定されていない場合は、ビューにジョイスティックを含めるためのより良い方法を見つけるお手伝いをします.

于 2013-01-26T17:15:24.920 に答える
-1

簡単な答えはここにあります: https://stackoverflow.com/a/34436589/3818437

を使用して、ScrollView をクリック可能/フォーカス可能でないと宣言します

android:clickable="false" and android:focusable="false"

また

v.setClickable(false) and v.setFocusable(false).

クリック イベントは、ScrollView の親にディスパッチする必要があります。

于 2015-12-23T13:24:20.260 に答える