Intereting Posts
WebView не изменяет размер Зависимость модуля – Android Studio Возможно ли изменить название приложения после его публикации в Google Play? Разделить элементы на группы в RecyclerView Скрыть клавиатуру, когда пользователь нажимает где-нибудь еще на экране в android Никакой активности не найдено для обработки гео-намерений в эмуляторе Как mterp (Dalvik VM) организует свою промежуточную петлю байтового кода? Как указать действия, которые предназначены только для телефонов или планшетов на Android Установить значение по умолчанию для целочисленного столбца SQLite Триггер галактики S4 Инфракрасный датчик разработки приложений? Android, назовите кадры предварительного просмотра камеры Как загрузить изображение на сервер в Android? Понимание проводов Android Tight / Spin-On-Suspend Как сделать несколько кликабельных частей текста в TextView Показать и скрыть представление с помощью анимации слайдов вверх / вниз

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 не выполняется. Это пропуск по значению – проблема там. Может ли кто-нибудь помочь мне решить это? Нужно срочно .. пожалуйста, помогите .. Спасибо заранее ..

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

Не используйте 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;