roiberg
roiberg

Reputation: 13747

Pass touches to the view under

In my app I have a fragment on top of the activity. The fragment is filling the whole screen. Part of the fragment is a transparent View and you can see the views under (that belong to the activity). Is there a way to transfer the touch events to the views that are under the transparent View of the fragment? Thanks!

Upvotes: 58

Views: 45665

Answers (3)

mhdjazmati
mhdjazmati

Reputation: 4232

simplest way :

form here: http://stackoverflow.com/a/34436589/3818437

Declare your fragment not clickable/focusable by using

android:clickable="false"

android:focusable="false"

or

v.setClickable(false)

v.setFocusable(false)

The click events should be dispatched to the fragment's parent now.

Note: To achieve this, you have to add a click to its direct parent. or set android:clickable="false" and android:focusable="false" to its direct parent to pass listener to further parent.

Upvotes: 40

Eugene Voronoy
Eugene Voronoy

Reputation: 1433

You can use special flag in layoutParams.

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

WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE

Upvotes: 4

Maciej Boguta
Maciej Boguta

Reputation: 1374

In your overriden onTouchEvent method inside the fragment return false, it passes the touch event to the lower layer views.

Upvotes: 44

Related Questions