Intereting Posts
Будет андроид java поддержка лямбда-выражения в java 8? Как я могу проверить, есть ли в моей таблице sqlite данные? Как использовать аппаратное ускорение декодирования видео на Android? Как создать Flow TextView Как узнать, когда синхронизация завершена? Как протестировать возможности напоминания о мобильном приложении в эмуляторе? Ошибка: выполнение выполнено для задачи ': ProjectName: mergeDebugResources'. > Crunching Cruncher * некоторые файлы * сбой, см. Журналы Анимированная анимация карты между действиями Как реализовать функцию Rate It в приложении Android Java.util.zip.ZipException: повторная запись: как преодолеть Как отключить коррекцию заклинаний программно в android Android Wear Включить подключение ADB через WiFi TCP / IP Инициализация приложения очень медленная: инициализация FirebaseApp неудачна Получить MotionEvent.getRawX / getRawY других указателей Как установить край для вертикальной полосы прокрутки с правого края в ListView?

Почему я всегда получаю ACTION_DOWN от onTouchEvent

Я расширяю свой класс из представления. И я переопределяю функцию onTouchEvent. Но я могу получить только событие ACTION_DOWN. А не ACTION_UP или ACTION_MOVE. Что я должен сделать, чтобы получить эти события?

Я переопределяю только функции onTouchEvent и onDraw. И есть только эта точка зрения в приложении

@Override public boolean onTouchEvent(MotionEvent event) { System.out.println("event:"+event.getAction()); return super.onTouchEvent(event); } 

Solutions Collecting From Web of "Почему я всегда получаю ACTION_DOWN от onTouchEvent"

Возможно, вам нужно вернуть true а не возвращать super событие. Это означает, что вы обработали это событие, и, следовательно, вы можете получить следующий.

На работе у нас был LinearLayout называемый teaser который имел похожие проблемы (это было какое-то время). Во всяком случае, мы обнаружили, что этот «взлом», похоже, помогает получить дополнительную отзывчивость из-за touch .

 teaser.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent motionEvent) { TransitionDrawable transition = (TransitionDrawable) v.getBackground(); switch(motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: if(transition != null) transition.startTransition(250); break; case MotionEvent.ACTION_UP: loadArticle(position); case MotionEvent.ACTION_CANCEL: if(transition != null) transition.reverseTransition(0); break; } return false; } }); // Has to be here for the touch to work properly. teaser.setOnClickListener(null); // <-- the important part for you 

Я, честно говоря, не мог дать вам рифму или причину, но, надеюсь, это помогает.

Этот пост может помочь вам узнать, что происходит: http://rxwen.blogspot.com/2010/07/implement-drag-and-drop-on-android.html