web-dev-qa-db-ja.com

下のビューにタッチを渡します

私のアプリでは、アクティビティの上にフラグメントがあります。フラグメントは画面全体を埋めています。フラグメントの一部は透明なビューであり、(アクティビティに属する)ビューを表示できます。フラグメントの透明なビューの下にあるビューにタッチイベントを転送する方法はありますか?ありがとう!

33
roiberg

フラグメント内のオーバーライドされたonTouchEventメソッドはfalseを返し、touchイベントを下位レイヤービューに渡します。

28
Maciej Boguta

最も簡単な方法:

ここから: https://stackoverflow.com/a/34436589/3818437

を使用して、フラグメントがクリック不可/フォーカス可能でないことを宣言します

Android:clickable="false"
Android:focusable="false"

または

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

クリックイベントは、フラグメントの親にディスパッチされるはずです。

注:これを実現するには、直接の親にクリックを追加する必要があります。または、Android:clickable = "false"およびAndroid:focusable = "false"を直接の親に設定して、リスナーをさらに親に渡します。

17
mhdjazmati

LayoutParamsで特別なフラグを使用できます。

https://stackoverflow.com/a/53955777/2885859

WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
2
Eugene Voronoy