から「ジョイスティック」を作りましたImageView
。の中にありScrollView
ます。
それはなくても動作しますScrollView
が、内部では垂直方向の動きScrollView
を受け取りません。TouchEvents
ScrollView
タッチイベントのブロックを停止するにはどうすればよいですか?
から「ジョイスティック」を作りましたImageView
。の中にありScrollView
ます。
それはなくても動作しますScrollView
が、内部では垂直方向の動きScrollView
を受け取りません。TouchEvents
ScrollView
タッチイベントのブロックを停止するにはどうすればよいですか?
私はここで解決策を見つけました。
ロックされているかどうかを示すブール値を持つカスタムScrollViewクラスを作成しました。onInterceptTouchEventメソッドはオーバーライドされます。
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (!mScrollable) return false;
return super.onInterceptTouchEvent(ev);
}
ジョイスティックに触れると(ACTION_DOWN)、カスタムScrollViewがロックされます。ATCTION_UPイベントでは、ロックが解除されます。
必要に応じてオンとオフを切り替えたいと思うでしょう..
getParent()。requestDisallowInterceptTouchEvent (真)。
なぜスクロールビューにジョイスティックがあるのか 正確にはわかりません.ジョイスティックもビューでスクロールするはずですか?これが意図されたものである場合、上記のルートが最善の解決策になります。ビューでスクロールすることが想定されていない場合は、ビューにジョイスティックを含めるためのより良い方法を見つけるお手伝いをします.
簡単な答えはここにあります: https://stackoverflow.com/a/34436589/3818437
を使用して、ScrollView をクリック可能/フォーカス可能でないと宣言します
android:clickable="false" and android:focusable="false"
また
v.setClickable(false) and v.setFocusable(false)
.
クリック イベントは、ScrollView の親にディスパッチする必要があります。