Srichand Yella Srichand Yella - 3 months ago 22
Android Question

Passing touch events to the parent view

I have a custom

ViewSwitcher
in which I implemented touch events so I
am able to scroll through screens using the touchscreen.

My layout hierarchy looks like this:

<ViewSwitcher>

<LinearLayout>
<ListView />
</LinearLayout>

<LinearLayout>
<ListView />
</LinearLayout>

</ViewSwitcher>


Now, the problem is that the touch events are being consumed by the
ListViews
and I am not able to switch the views. It works fine when I
don't have the
ListViews
. I need to be able to scroll through the
views and scroll the
ListView
.

How do I solve this?

EDIT: I also need the
ListView
items to be clickable.

Thanks in advance!

Answer

Thank you everyone for answering the question. But I was able to figure it out in a much simpler manner. Since my ViewSwitcher wasn't detecting the touch event, I intercepted the touch event, called the onTouchEvent() and returned false. Here:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
    onTouchEvent(ev);
    return false;
}

By overriding the onInterceptTouchEvent(), I was able to intercept the touch event in the activity. Then I called the onTouchEvent() in the ViewSwitcher which handles the switching of the ListViews. And finally by returning false, it makes sure that the ViewGroup doesn't consume the event.

Comments