I have a ViewPager that contains pages, each page with a bunch of Buttons (or clickable TextViews). When I set the buttons to 'setClickable(false)', swiping the ViewPager to another page works fine all the time.
However, when the buttons are clickable (OnClick listener is set), the ViewPager won't do anything if the user put his or her finger down on the button when he or she starts a swipe or scroll. If the user swipes, the button 'eats' all the touch-events (MotionEvents).
Is there a convenient way to make these buttons/textviews clickable and make the ViewPager swipe even if the user puts his finger on a button initially? (I'd like to avoid hacks and using GestureDetectors if possible)
Sounds like a bug in how ViewPager dispatches events (sorry for stating the
obvious). I'd consider looking at the source and comparing it to ScrollView
(which handles nested touchable areas just fine).
-- K
2012/10/2 Streets Of Boston <flyingdutc...@gmail.com>
> I have a ViewPager that contains pages, each page with a bunch of Buttons
> (or clickable TextViews). When I set the buttons to 'setClickable(false)',
> swiping the ViewPager to another page works fine all the time.
> However, when the buttons are clickable (OnClick listener is set), the
> ViewPager won't do anything if the user put his or her finger down on the
> button when he or she starts a swipe or scroll. If the user swipes, the
> button 'eats' all the touch-events (MotionEvents).
> Is there a convenient way to make these buttons/textviews clickable and
> make the ViewPager swipe even if the user puts his finger on a button
> initially?
> (I'd like to avoid hacks and using GestureDetectors if possible)
> Thanks!
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscribe@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
On Tuesday, October 2, 2012 12:47:41 PM UTC-4, Kostya Vasilyev wrote:
> Sounds like a bug in how ViewPager dispatches events (sorry for stating > the obvious). I'd consider looking at the source and comparing it to > ScrollView (which handles nested touchable areas just fine).
> -- K
> 2012/10/2 Streets Of Boston <flying...@gmail.com <javascript:>>
>> Hi everyone,
>> I have a ViewPager that contains pages, each page with a bunch of Buttons >> (or clickable TextViews). When I set the buttons to 'setClickable(false)', >> swiping the ViewPager to another page works fine all the time.
>> However, when the buttons are clickable (OnClick listener is set), the >> ViewPager won't do anything if the user put his or her finger down on the >> button when he or she starts a swipe or scroll. If the user swipes, the >> button 'eats' all the touch-events (MotionEvents).
>> Is there a convenient way to make these buttons/textviews clickable and >> make the ViewPager swipe even if the user puts his finger on a button >> initially? >> (I'd like to avoid hacks and using GestureDetectors if possible)
>> Thanks!
>> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to >> To unsubscribe from this group, send email to
ViewPager is part of the support package and inherits from a ViewGroup , it shouldn't matter much which OS version it runs on. I have a similar setup and i dont experience this issue (using support package v4, i assume you're using the same since you said you tested on earlier os versions). I can even press a button and see it switch to its pressed state and then start a swipe without generating an onClick event.
On Tuesday, October 9, 2012 4:27:31 PM UTC+2, Streets Of Boston wrote:
> Hi Kostya,
> Thanks for your answer.
> This bug (?) only happens on Jelly Bean (I don't have ICS devices to test > it on). > It works fine on Honeycomb and lower OS versions.
> It seems there is indeed a regression of the ViewPager in JB (and possibly > ICS).
> Thanks.
> On Tuesday, October 2, 2012 12:47:41 PM UTC-4, Kostya Vasilyev wrote:
>> Sounds like a bug in how ViewPager dispatches events (sorry for stating >> the obvious). I'd consider looking at the source and comparing it to >> ScrollView (which handles nested touchable areas just fine).
>> -- K
>> 2012/10/2 Streets Of Boston <flying...@gmail.com>
>>> Hi everyone,
>>> I have a ViewPager that contains pages, each page with a bunch of >>> Buttons (or clickable TextViews). When I set the buttons to >>> 'setClickable(false)', swiping the ViewPager to another page works fine all >>> the time.
>>> However, when the buttons are clickable (OnClick listener is set), the >>> ViewPager won't do anything if the user put his or her finger down on the >>> button when he or she starts a swipe or scroll. If the user swipes, the >>> button 'eats' all the touch-events (MotionEvents).
>>> Is there a convenient way to make these buttons/textviews clickable and >>> make the ViewPager swipe even if the user puts his finger on a button >>> initially? >>> (I'd like to avoid hacks and using GestureDetectors if possible)
>>> Thanks!
>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Android Developers" group. >>> To post to this group, send email to >>> To unsubscribe from this group, send email to
Note that ProfileGridView contains one or more ProfileGridViewRows which contains one or more clickable TextView (i.e. our buttons). The ProfileGridView and ProfileGridViewRow are custom LinearyLayouts: The have their own measure and layout-logic. These two subclasses don't have any method or logic to capture or handle touch-events.
On Tuesday, October 9, 2012 11:31:03 AM UTC-4, Piren wrote:
> ViewPager is part of the support package and inherits from a ViewGroup , > it shouldn't matter much which OS version it runs on. > I have a similar setup and i dont experience this issue (using support > package v4, i assume you're using the same since you said you tested on > earlier os versions). > I can even press a button and see it switch to its pressed state and then > start a swipe without generating an onClick event.
> What is your targetSdkVersion?
> On Tuesday, October 9, 2012 4:27:31 PM UTC+2, Streets Of Boston wrote:
>> Hi Kostya,
>> Thanks for your answer.
>> This bug (?) only happens on Jelly Bean (I don't have ICS devices to test >> it on). >> It works fine on Honeycomb and lower OS versions.
>> It seems there is indeed a regression of the ViewPager in JB (and >> possibly ICS).
>> Thanks.
>> On Tuesday, October 2, 2012 12:47:41 PM UTC-4, Kostya Vasilyev wrote:
>>> Sounds like a bug in how ViewPager dispatches events (sorry for stating >>> the obvious). I'd consider looking at the source and comparing it to >>> ScrollView (which handles nested touchable areas just fine).
>>> -- K
>>> 2012/10/2 Streets Of Boston <flying...@gmail.com>
>>>> Hi everyone,
>>>> I have a ViewPager that contains pages, each page with a bunch of >>>> Buttons (or clickable TextViews). When I set the buttons to >>>> 'setClickable(false)', swiping the ViewPager to another page works fine all >>>> the time.
>>>> However, when the buttons are clickable (OnClick listener is set), the >>>> ViewPager won't do anything if the user put his or her finger down on the >>>> button when he or she starts a swipe or scroll. If the user swipes, the >>>> button 'eats' all the touch-events (MotionEvents).
>>>> Is there a convenient way to make these buttons/textviews clickable and >>>> make the ViewPager swipe even if the user puts his finger on a button >>>> initially? >>>> (I'd like to avoid hacks and using GestureDetectors if possible)
>>>> Thanks!
>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Android Developers" group. >>>> To post to this group, send email to >>>> To unsubscribe from this group, send email to
The thing is that being Clickable shouldn't have any impact in this scenario. Although a clickable view always consumes the touch event, in ViewPager's case it should intercept it when it recognizes a drag gesture (see its onInterceptTouchEvent implementation).
You should override onTouch and onInterceptTouchEvent for all your custom views and use logs to see how the events propagate through them (the proper behavior would be the button intercepting onTouch and once your finger moves enough in the X axes it should stop getting that event)
My best guess is that the ViewPager cancels the drag because it believes your views have horizontal scrolling - I didnt dig all the way through, but it seems to be basing that mostly on child view sizes... since you said you have custom layout logic, i'm thinking it makes the ViewPager return the wrong result. try debugging ViewPager's canScroll method.
they also have this comment in there: " // TODO: Add versioned support here for transformed views. This will not work for transformed views in Honeycomb+ ) " Kind of suspicious :)
> Note that ProfileGridView contains one or more ProfileGridViewRows which > contains one or more clickable TextView (i.e. our buttons). > The ProfileGridView and ProfileGridViewRow are custom LinearyLayouts: The > have their own measure and layout-logic. These two subclasses don't have > any method or logic to capture or handle touch-events.
> Thanks!
> On Tuesday, October 9, 2012 11:31:03 AM UTC-4, Piren wrote:
>> ViewPager is part of the support package and inherits from a ViewGroup , >> it shouldn't matter much which OS version it runs on. >> I have a similar setup and i dont experience this issue (using support >> package v4, i assume you're using the same since you said you tested on >> earlier os versions). >> I can even press a button and see it switch to its pressed state and then >> start a swipe without generating an onClick event.
>> What is your targetSdkVersion?
>> On Tuesday, October 9, 2012 4:27:31 PM UTC+2, Streets Of Boston wrote:
>>> Hi Kostya,
>>> Thanks for your answer.
>>> This bug (?) only happens on Jelly Bean (I don't have ICS devices to >>> test it on). >>> It works fine on Honeycomb and lower OS versions.
>>> It seems there is indeed a regression of the ViewPager in JB (and >>> possibly ICS).
>>> Thanks.
>>> On Tuesday, October 2, 2012 12:47:41 PM UTC-4, Kostya Vasilyev wrote:
>>>> Sounds like a bug in how ViewPager dispatches events (sorry for stating >>>> the obvious). I'd consider looking at the source and comparing it to >>>> ScrollView (which handles nested touchable areas just fine).
>>>> -- K
>>>> 2012/10/2 Streets Of Boston <flying...@gmail.com>
>>>>> Hi everyone,
>>>>> I have a ViewPager that contains pages, each page with a bunch of >>>>> Buttons (or clickable TextViews). When I set the buttons to >>>>> 'setClickable(false)', swiping the ViewPager to another page works fine all >>>>> the time.
>>>>> However, when the buttons are clickable (OnClick listener is set), the >>>>> ViewPager won't do anything if the user put his or her finger down on the >>>>> button when he or she starts a swipe or scroll. If the user swipes, the >>>>> button 'eats' all the touch-events (MotionEvents).
>>>>> Is there a convenient way to make these buttons/textviews clickable >>>>> and make the ViewPager swipe even if the user puts his finger on a button >>>>> initially? >>>>> (I'd like to avoid hacks and using GestureDetectors if possible)
>>>>> Thanks!
>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Android Developers" group. >>>>> To post to this group, send email to >>>>> To unsubscribe from this group, send email to
The *ViewPager *contains *TextViews *as (grand-grand...) children. Before it actually starts scrolling it asks if the touched child (or one of the child's children) could scroll horizontally. If one of them does, the * ViewPager* won't scroll horizontally itself. Instead, it lets this child scroll.
The *TextView* implements a method called '*canScrollHorizontally(int)*'. It uses the *mLayout *member to determine this method's return value. Sometimes, the *mLayout.mWidth* is 0x00100000 (= 1048576) and this weird value causes this *canScrollHorizontallly *method to incorrectly return *true *(instead of *false*).
The method canScrollHorizontally is only available for API-level 14 or up... this may explain the issue...
For now, I just subclass my *TextView* that appear in the *ViewPager *and override the *canScrollHorizontally *method, because I know the text in these *TextViews *can never scroll horizontally.
public class MyTextView extends TextView { ... @Override public boolean canScrollHorizontally(int direction) { return false;
} .... } On Wednesday, October 10, 2012 9:38:03 AM UTC-4, Piren wrote:
> The thing is that being Clickable shouldn't have any impact in this > scenario. Although a clickable view always consumes the touch event, in > ViewPager's case it should intercept it when it recognizes a drag gesture > (see its onInterceptTouchEvent implementation).
> You should override onTouch and onInterceptTouchEvent for all your custom > views and use logs to see how the events propagate through them (the proper > behavior would be the button intercepting onTouch and once your finger > moves enough in the X axes it should stop getting that event)
> My best guess is that the ViewPager cancels the drag because it believes > your views have horizontal scrolling - I didnt dig all the way through, but > it seems to be basing that mostly on child view sizes... since you said you > have custom layout logic, i'm thinking it makes the ViewPager return the > wrong result. try debugging ViewPager's canScroll method.
> they also have this comment in there: " // TODO: Add versioned support > here for transformed views. This will not work for transformed views in > Honeycomb+ ) " Kind of suspicious :)
> On Tuesday, October 9, 2012 11:57:28 PM UTC+2, Streets Of Boston wrote:
>> Note that ProfileGridView contains one or more ProfileGridViewRows which >> contains one or more clickable TextView (i.e. our buttons). >> The ProfileGridView and ProfileGridViewRow are custom LinearyLayouts: The >> have their own measure and layout-logic. These two subclasses don't have >> any method or logic to capture or handle touch-events.
>> Thanks!
>> On Tuesday, October 9, 2012 11:31:03 AM UTC-4, Piren wrote:
>>> ViewPager is part of the support package and inherits from a ViewGroup , >>> it shouldn't matter much which OS version it runs on. >>> I have a similar setup and i dont experience this issue (using support >>> package v4, i assume you're using the same since you said you tested on >>> earlier os versions). >>> I can even press a button and see it switch to its pressed state and >>> then start a swipe without generating an onClick event.
>>> What is your targetSdkVersion?
>>> On Tuesday, October 9, 2012 4:27:31 PM UTC+2, Streets Of Boston wrote:
>>>> Hi Kostya,
>>>> Thanks for your answer.
>>>> This bug (?) only happens on Jelly Bean (I don't have ICS devices to >>>> test it on). >>>> It works fine on Honeycomb and lower OS versions.
>>>> It seems there is indeed a regression of the ViewPager in JB (and >>>> possibly ICS).
>>>> Thanks.
>>>> On Tuesday, October 2, 2012 12:47:41 PM UTC-4, Kostya Vasilyev wrote:
>>>>> Sounds like a bug in how ViewPager dispatches events (sorry for >>>>> stating the obvious). I'd consider looking at the source and comparing it >>>>> to ScrollView (which handles nested touchable areas just fine).
>>>>> -- K
>>>>> 2012/10/2 Streets Of Boston <flying...@gmail.com>
>>>>>> Hi everyone,
>>>>>> I have a ViewPager that contains pages, each page with a bunch of >>>>>> Buttons (or clickable TextViews). When I set the buttons to >>>>>> 'setClickable(false)', swiping the ViewPager to another page works fine all >>>>>> the time.
>>>>>> However, when the buttons are clickable (OnClick listener is set), >>>>>> the ViewPager won't do anything if the user put his or her finger down on >>>>>> the button when he or she starts a swipe or scroll. If the user swipes, the >>>>>> button 'eats' all the touch-events (MotionEvents).
>>>>>> Is there a convenient way to make these buttons/textviews clickable >>>>>> and make the ViewPager swipe even if the user puts his finger on a button >>>>>> initially? >>>>>> (I'd like to avoid hacks and using GestureDetectors if possible)
>>>>>> Thanks!
>>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Android Developers" group. >>>>>> To post to this group, send email to >>>>>> To unsubscribe from this group, send email to
The weird 0x00100000 value is the value of *VERY_WIDE*, which is assigned to the Layout's width if the *TextView*'s *mHorizontallyScrolling *field* *is set to *true*.
Calling *setHorizontallyScrolling(false)* or setting the * android:scrollHorizontally="false"* attribute in your XML does the trick as well :-)
On Wednesday, October 31, 2012 7:11:33 PM UTC-4, Streets Of Boston wrote:
> Thanks Piren!
> Your answer led me into the right direction.
> This was the problem:
> The *ViewPager *contains *TextViews *as (grand-grand...) children. Before > it actually starts scrolling it asks if the touched child (or one of the > child's children) could scroll horizontally. If one of them does, the * > ViewPager* won't scroll horizontally itself. Instead, it lets this child > scroll.
> The *TextView* implements a method called '*canScrollHorizontally(int)*'. > It uses the *mLayout *member to determine this method's return value. > Sometimes, the *mLayout.mWidth* is 0x00100000 (= 1048576) and this weird > value causes this *canScrollHorizontallly *method to incorrectly return *true > *(instead of *false*).
> The method canScrollHorizontally is only available for API-level 14 or > up... this may explain the issue...
> For now, I just subclass my *TextView* that appear in the *ViewPager *and > override the *canScrollHorizontally *method, because I know the text in > these *TextViews *can never scroll horizontally.
> public class MyTextView extends TextView { > ... > @Override > public boolean canScrollHorizontally(int direction) { > return false; > } > .... > }
> On Wednesday, October 10, 2012 9:38:03 AM UTC-4, Piren wrote:
>> The thing is that being Clickable shouldn't have any impact in this >> scenario. Although a clickable view always consumes the touch event, in >> ViewPager's case it should intercept it when it recognizes a drag gesture >> (see its onInterceptTouchEvent implementation).
>> You should override onTouch and onInterceptTouchEvent for all your custom >> views and use logs to see how the events propagate through them (the proper >> behavior would be the button intercepting onTouch and once your finger >> moves enough in the X axes it should stop getting that event)
>> My best guess is that the ViewPager cancels the drag because it believes >> your views have horizontal scrolling - I didnt dig all the way through, but >> it seems to be basing that mostly on child view sizes... since you said you >> have custom layout logic, i'm thinking it makes the ViewPager return the >> wrong result. try debugging ViewPager's canScroll method.
>> they also have this comment in there: " // TODO: Add versioned support >> here for transformed views. This will not work for transformed views in >> Honeycomb+ ) " Kind of suspicious :)
>> On Tuesday, October 9, 2012 11:57:28 PM UTC+2, Streets Of Boston wrote:
>>> The targetSdk is 11. >>> This is our hierarchy:
>>> Note that ProfileGridView contains one or more ProfileGridViewRows which >>> contains one or more clickable TextView (i.e. our buttons). >>> The ProfileGridView and ProfileGridViewRow are custom LinearyLayouts: >>> The have their own measure and layout-logic. These two subclasses don't >>> have any method or logic to capture or handle touch-events.
>>> Thanks!
>>> On Tuesday, October 9, 2012 11:31:03 AM UTC-4, Piren wrote:
>>>> ViewPager is part of the support package and inherits from a ViewGroup >>>> , it shouldn't matter much which OS version it runs on. >>>> I have a similar setup and i dont experience this issue (using support >>>> package v4, i assume you're using the same since you said you tested on >>>> earlier os versions). >>>> I can even press a button and see it switch to its pressed state and >>>> then start a swipe without generating an onClick event.
>>>> What is your targetSdkVersion?
>>>> On Tuesday, October 9, 2012 4:27:31 PM UTC+2, Streets Of Boston wrote:
>>>>> Hi Kostya,
>>>>> Thanks for your answer.
>>>>> This bug (?) only happens on Jelly Bean (I don't have ICS devices to >>>>> test it on). >>>>> It works fine on Honeycomb and lower OS versions.
>>>>> It seems there is indeed a regression of the ViewPager in JB (and >>>>> possibly ICS).
>>>>> Thanks.
>>>>> On Tuesday, October 2, 2012 12:47:41 PM UTC-4, Kostya Vasilyev wrote:
>>>>>> Sounds like a bug in how ViewPager dispatches events (sorry for >>>>>> stating the obvious). I'd consider looking at the source and comparing it >>>>>> to ScrollView (which handles nested touchable areas just fine).
>>>>>> -- K
>>>>>> 2012/10/2 Streets Of Boston <flying...@gmail.com>
>>>>>>> Hi everyone,
>>>>>>> I have a ViewPager that contains pages, each page with a bunch of >>>>>>> Buttons (or clickable TextViews). When I set the buttons to >>>>>>> 'setClickable(false)', swiping the ViewPager to another page works fine all >>>>>>> the time.
>>>>>>> However, when the buttons are clickable (OnClick listener is set), >>>>>>> the ViewPager won't do anything if the user put his or her finger down on >>>>>>> the button when he or she starts a swipe or scroll. If the user swipes, the >>>>>>> button 'eats' all the touch-events (MotionEvents).
>>>>>>> Is there a convenient way to make these buttons/textviews clickable >>>>>>> and make the ViewPager swipe even if the user puts his finger on a button >>>>>>> initially? >>>>>>> (I'd like to avoid hacks and using GestureDetectors if possible)
>>>>>>> Thanks!
>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Android Developers" group. >>>>>>> To post to this group, send email to >>>>>>> To unsubscribe from this group, send email to
On Thursday, November 1, 2012 1:32:19 AM UTC+2, Streets Of Boston wrote:
> Update:
> The weird 0x00100000 value is the value of *VERY_WIDE*, which is assigned > to the Layout's width if the *TextView*'s *mHorizontallyScrolling *field* > *is set to *true*.
> Calling *setHorizontallyScrolling(false)* or setting the * > android:scrollHorizontally="false"* attribute in your XML does the trick > as well :-)
> On Wednesday, October 31, 2012 7:11:33 PM UTC-4, Streets Of Boston wrote:
>> Thanks Piren!
>> Your answer led me into the right direction.
>> This was the problem:
>> The *ViewPager *contains *TextViews *as (grand-grand...) children. >> Before it actually starts scrolling it asks if the touched child (or one of >> the child's children) could scroll horizontally. If one of them does, the >> *ViewPager* won't scroll horizontally itself. Instead, it lets this >> child scroll.
>> The *TextView* implements a method called '*canScrollHorizontally(int)*'. >> It uses the *mLayout *member to determine this method's return value. >> Sometimes, the *mLayout.mWidth* is 0x00100000 (= 1048576) and this >> weird value causes this *canScrollHorizontallly *method to incorrectly >> return *true *(instead of *false*).
>> The method canScrollHorizontally is only available for API-level 14 or >> up... this may explain the issue...
>> For now, I just subclass my *TextView* that appear in the *ViewPager *and >> override the *canScrollHorizontally *method, because I know the text in >> these *TextViews *can never scroll horizontally.
>> public class MyTextView extends TextView { >> ... >> @Override >> public boolean canScrollHorizontally(int direction) { >> return false; >> } >> .... >> }
>> On Wednesday, October 10, 2012 9:38:03 AM UTC-4, Piren wrote:
>>> The thing is that being Clickable shouldn't have any impact in this >>> scenario. Although a clickable view always consumes the touch event, in >>> ViewPager's case it should intercept it when it recognizes a drag gesture >>> (see its onInterceptTouchEvent implementation).
>>> You should override onTouch and onInterceptTouchEvent for all your >>> custom views and use logs to see how the events propagate through them (the >>> proper behavior would be the button intercepting onTouch and once your >>> finger moves enough in the X axes it should stop getting that event)
>>> My best guess is that the ViewPager cancels the drag because it believes >>> your views have horizontal scrolling - I didnt dig all the way through, but >>> it seems to be basing that mostly on child view sizes... since you said you >>> have custom layout logic, i'm thinking it makes the ViewPager return the >>> wrong result. try debugging ViewPager's canScroll method.
>>> they also have this comment in there: " // TODO: Add versioned support >>> here for transformed views. This will not work for transformed views in >>> Honeycomb+ ) " Kind of suspicious :)
>>> On Tuesday, October 9, 2012 11:57:28 PM UTC+2, Streets Of Boston wrote:
>>>> The targetSdk is 11. >>>> This is our hierarchy:
>>>> Note that ProfileGridView contains one or more ProfileGridViewRows >>>> which contains one or more clickable TextView (i.e. our buttons). >>>> The ProfileGridView and ProfileGridViewRow are custom LinearyLayouts: >>>> The have their own measure and layout-logic. These two subclasses don't >>>> have any method or logic to capture or handle touch-events.
>>>> Thanks!
>>>> On Tuesday, October 9, 2012 11:31:03 AM UTC-4, Piren wrote:
>>>>> ViewPager is part of the support package and inherits from a ViewGroup >>>>> , it shouldn't matter much which OS version it runs on. >>>>> I have a similar setup and i dont experience this issue (using support >>>>> package v4, i assume you're using the same since you said you tested on >>>>> earlier os versions). >>>>> I can even press a button and see it switch to its pressed state and >>>>> then start a swipe without generating an onClick event.
>>>>> What is your targetSdkVersion?
>>>>> On Tuesday, October 9, 2012 4:27:31 PM UTC+2, Streets Of Boston wrote:
>>>>>> Hi Kostya,
>>>>>> Thanks for your answer.
>>>>>> This bug (?) only happens on Jelly Bean (I don't have ICS devices to >>>>>> test it on). >>>>>> It works fine on Honeycomb and lower OS versions.
>>>>>> It seems there is indeed a regression of the ViewPager in JB (and >>>>>> possibly ICS).
>>>>>> Thanks.
>>>>>> On Tuesday, October 2, 2012 12:47:41 PM UTC-4, Kostya Vasilyev wrote:
>>>>>>> Sounds like a bug in how ViewPager dispatches events (sorry for >>>>>>> stating the obvious). I'd consider looking at the source and comparing it >>>>>>> to ScrollView (which handles nested touchable areas just fine).
>>>>>>> -- K
>>>>>>> 2012/10/2 Streets Of Boston <flying...@gmail.com>
>>>>>>>> Hi everyone,
>>>>>>>> I have a ViewPager that contains pages, each page with a bunch of >>>>>>>> Buttons (or clickable TextViews). When I set the buttons to >>>>>>>> 'setClickable(false)', swiping the ViewPager to another page works fine all >>>>>>>> the time.
>>>>>>>> However, when the buttons are clickable (OnClick listener is set), >>>>>>>> the ViewPager won't do anything if the user put his or her finger down on >>>>>>>> the button when he or she starts a swipe or scroll. If the user swipes, the >>>>>>>> button 'eats' all the touch-events (MotionEvents).
>>>>>>>> Is there a convenient way to make these buttons/textviews clickable >>>>>>>> and make the ViewPager swipe even if the user puts his finger on a button >>>>>>>> initially? >>>>>>>> (I'd like to avoid hacks and using GestureDetectors if possible)
>>>>>>>> Thanks!
>>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Android Developers" group. >>>>>>>> To post to this group, send email to >>>>>>>> To unsubscribe from this group, send email to