How to extend a view's touch area

19,174

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"
Share:
19,174
Bernd
Author by

Bernd

Updated on July 30, 2022

Comments

  • Bernd
    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, my onTouchEvent() 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 a ListView does.

    I don't know why a ListView's onTouchEvent() is called even when outside the ListView, but not in case of my LinearLayout. I tracked it down back to the dispatchTouchEvent(). Here the situation is the same that method is always called for the ListView (even when outside) but not in case of the LinearLayout (when moving outside).

    I'd be very happy if someone could give me a hint. Thanks a lot!

    Bernd

  • Bernd
    Bernd about 12 years
    Yes 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.