2016-06-04 1 views
2

Я знаю, что есть несколько ответов, которые описывают, как заблокировать ViewPager.Отключить прокрутку ViewPager, когда у конкретного ребенка есть фокус

Но я хочу, чтобы мой ViewPager мог прокручивать только в том случае, если прикосновение не происходит на конкретном ребенке.

Так как я могу «отфильтровать», какие детские взгляды касаются?

пример кода, как я хочу, чтобы заблокировать мой ViewPager:

for (Integer resource:mResources) { 
     if(resource.intValue()==view.getId()){ 
      touchTriggeredOnView(view.getId()); 
     } 
    } 

Причина, почему я хочу сделать это, что у меня есть настраиваемое представление, которое необходимо для обнаружения Fling жестов. Этот пользовательский вид является дочерним по отношению к Fragment, а Fragment является дочерним по отношению к ViewPager.

So: ViewPager ->Fragment ->CustomView.

Я могу обнаружить DOWN, но не событие FLING внутри моего CustomView.

Я думаю, что ViewPager захватывает событие FLING -> плохая вещь.

Я надеюсь, что мой вопрос достаточно ясен.

ответ

2

onTouch и gesture listeners в Android имеют логические значения возврата, которые указывают, потребляется ли событие (касание, бросок, щелчок) или нет.

ViewPager, вероятно, потребляет событие «Fling», однако вы можете переопределить onTouch, прослушиватель жестов в ViewPager и вернуть false - таким образом, не потребляя событие касания и передавая его в свое пользовательское представление.