Intereting Posts
Внедрение двух интерфейсов в анонимном классе Что случилось с java emacs? Как использовать считыватель Radaee Pdf sdk Выпуск подписи Android Release Build «Не удалось прочитать ключ из хранилища ключей» Как принудительно использовать EditText для запуска текста в заглавной букве? Стрелка назад в панели действий Шерлок не отображается Уточнение в отношении Android «Высота атрибута используется только в API уровня 21 и выше» Должен ли я использовать getApplicationContext или Activity.this в долгосрочной перспективе AsyncTask Шифр с режимом ECB не должен использоваться Android – Linkify, autoLink удаляет изменение цвета текста при касании API Android Google Maps v2: визуализация радиуса поиска с помощью ValueAnimator Как отправить multipart / form-data с помощью Retrofit? DialogFragment не изменяется при нажатии на клавиатуру Ошибка: – Выполнение неудачно для задачи ': app: dexDebug' в андроид-студии Как исходный код Android не имеет основного метода и все еще работает?

Android: обнаружение жестов

В моем приложении я пытаюсь захватить событие ScrollView на представлении (точнее, LinearLayout , но также с LinearLayout ).

Установив точки останова, я вижу, что MotionEvents происходит правильно до точки, в onFling() должен срабатывать onFling() .

Поток событий следующий:

  1. Просмотр onTouchEvent
  2. OnGestureListener's onDown
  3. OnGestureListener's onShowPress
  4. OnGestureListener's onLongPress

Я в недоумении о том, как продолжать отлаживать что-то вроде этого, и поиск в Google не сильно повышается. Любые указатели?

Я также прилагаю соответствующее представление, которое должно обрабатывать жесты:

 import android.content.Context; import android.content.Intent; import android.view.GestureDetector; import android.view.MotionEvent; import android.widget.ScrollView; public class GestureScrollView extends ScrollView { private static int MAJOR_MOVE = 60; private GestureDetector gd; public GestureScrollView(final Context context) { super(context); gd = new GestureDetector(context, new GestureDetector.OnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { // TODO Auto-generated method stub return false; } @Override public void onShowPress(MotionEvent e) { // TODO Auto-generated method stub } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // TODO Auto-generated method stub return false; } @Override public void onLongPress(MotionEvent e) { // TODO Auto-generated method stub } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { int dx = (int) (e2.getX() - e1.getX()); if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.abs(velocityY)) { if (velocityX < 0) { Intent intent = new Intent(context, Main.class); context.startActivity(intent); } } return false; } @Override public boolean onDown(MotionEvent e) { // TODO Auto-generated method stub return false; } }); } @Override public boolean onTouchEvent(MotionEvent event) { return gd.onTouchEvent(event); } } 

Solutions Collecting From Web of "Android: обнаружение жестов"