OnTouchEvent выполняется, когда страница прокручивается с помощью ViewPager и PassByValue

В моем проекте использовали onTouchEvent для обнаружения касания на экране и выполнения действий соответственно, а также использовали viewPager для действия салфетки. Проблема заключается в том, что сенсорные действия выполняются. Поэтому найти решение здесь решило. Но моя новая проблема заключается в том, что прикосновение становится отключенным после того, как TouchEvent.Action_up будет выполнен. Код выглядит следующим образом:

parent.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_MOVE: awesomePager.requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: awesomePager.requestDisallowInterceptTouchEvent(true); if(flag) { upperdock.setClickable(false); upperdock.bringToFront(); tocparent.bringToFront(); tocbottom.bringToFront(); upperdock.setVisibility(RelativeLayout.VISIBLE); tocparent.setVisibility(LinearLayout.VISIBLE); tocbottom.setVisibility(LinearLayout.VISIBLE); flag=false; } else { parent.bringToFront(); upperdock.setVisibility(RelativeLayout.INVISIBLE); tocparent.setVisibility(LinearLayout.INVISIBLE); tocbottom.setVisibility(LinearLayout.INVISIBLE); flag=true; } break; case MotionEvent.ACTION_CANCEL: awesomePager.requestDisallowInterceptTouchEvent(false); break; default: break; } return false; } }); 

В приведенном выше коде, если я возвращаю false, Action_up не выполняется. Если я возвращаю true, Action_cancel не выполняется. Это пропуск по значению – проблема там. Может ли кто-нибудь помочь мне решить это? Нужно срочно .. пожалуйста, помогите .. Спасибо заранее ..

Solutions Collecting From Web of "OnTouchEvent выполняется, когда страница прокручивается с помощью ViewPager и PassByValue"

Я что-то меняю для этого.

Не используйте awesomePager.requestDisallowInterceptTouchEvent(false) , просто используйте return true .

В своей деятельности определяют булевскую прокрутку ;

Set sroll = positionOffset! = 0.0 в ViewPager.onPageScrolled и i переопределить onTouchEvent, в котором вид в ViewPager .

Теперь вы можете проверить if (event.getAction () == MotionEvent.ACTION_UP &&! Sroll), чтобы определить событие, будет ли оно вызвано

У меня такая же проблема! Для меня это сработало очень хорошо ….

 case MotionEvent.ACTION_MOVE: { getParent().requestDisallowInterceptTouchEvent(false); break; } case MotionEvent.ACTION_CANCEL:{ getParent().requestDisallowInterceptTouchEvent(true); break; } case MotionEvent.ACTION_UP:{ //delete awesomePager.requestDisallowInterceptTouchEvent(true); //you don't need it here! . . do your stuff.... . } 

Верните весь метод onTouch как истинный, а не false …

 return true;