How to extend a view's touch area
Solution 1
You could use Android's TouchDelegate feature. It supports a bigger touch area for single views. Here is an example: https://stackoverflow.com/a/1343796/636579
Solution 2
i think that you should try increasing the padding of a view from all sides so that when user will click near the view in area of padding the ontouch or onClick method will be called
android:padding="10dp"
Bernd
Updated on July 30, 2022Comments
-
Bernd almost 2 years
I have a vertical
LinearLayout
. It shall act as a quick jump bar. So the width is very small and the height matches nearly the whole screen height. When I touch it and move around inside, everything is fine. That means, myonTouchEvent()
is called and I can get (and follow) the position of the finger. But since the bar is not very wide, the user can easily drift outside of that view. So it would be necessary to let the user continue the movement even when outside the view. In fact the same thing like aListView
does.I don't know why a
ListView
'sonTouchEvent()
is called even when outside theListView
, but not in case of myLinearLayout
. I tracked it down back to thedispatchTouchEvent()
. Here the situation is the same that method is always called for theListView
(even when outside) but not in case of theLinearLayout
(when moving outside).I'd be very happy if someone could give me a hint. Thanks a lot!
Bernd
-
Bernd about 12 yearsYes I saw that post already, but as far as I understood it is only possible to extend it to the next parent's size. That would mean, in order to get the full screen height, the whole view tree must be evaluated. I was not able to figure out how ListView does this trick.