android - 为什么 ACTION_DOWN 可能偶尔不会在 Android 中为 ListView 触发

标签 android ontouchlistener

我正在尝试在我的 ListViewonTouch() 方法中做一些工作。问题是有时我会收到 ACTION_UP 类型的 MotionEvent 而之前没有收到 ACTION_DOWN,这完全毁了我的应用程序。有人可以解释可能是什么问题吗?

这是我的 OnTouchListener 的一些代码:

@Override
public boolean onTouch(final View v, MotionEvent event) {

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            Log.d("TAG", "ATCION_DOWN");        
            break;
        case MotionEvent.ACTION_MOVE:
            //Log.d("TAG", "ACTION_MOVE");
            break;
        case MotionEvent.ACTION_UP:
            Log.d("TAG", "ACTION_UP");
            break;
    }
    return false;
}

这是我从日志中得到的:

  • 09-16 20:15:02.116 25661-25661/com.ulmaxy.morny D/标签:ATCION_DOWN 09-16 20:15:02.186 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:02.846 25661-25661/com.ulmaxy.morny D/标签:ATCION_DOWN 09-16 20:15:02.916 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:03.586 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:04.166 25661-25661/com.ulmaxy.morny D/标签:ATCION_DOWN 09-16 20:15:04.276 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:05.316 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:06.086 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:07.046 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:08.136 25661-25661/com.ulmaxy.morny D/标签:ATCION_DOWN 09-16 20:15:08.256 25661-25661/com.ulmaxy.morny D/标签:ACTION_UP 09-16 20:15:09.206 25661-25661/com.ulmaxy.morny D/TAG:ACTION_UP

最佳答案

您的 ListView 是否在 ScrollView 中?如果是这样,有时 ScrollView 可以“窃取”Action_DOWN。 编辑:一开始不小心调用了 ScrollView SpinnerView,我的错。

EDIT2:问题显然是 subview “窃取”了事件(因为事件被传递给布局层次结构中最低的 subview )。您可以通过在他们的 OnTouchEvents 上返回 false 来解决这个问题。

关于android - 为什么 ACTION_DOWN 可能偶尔不会在 Android 中为 ListView 触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532608/

相关文章:

Android抽屉导航切换图标向右

java - 使用 eclipse 在 sqlite 中找不到这样的列

Android在RelativeLayout中左右滑动

android - Android 中的 MotionEvent.ACTION_DOWN 过于敏感。即使只是触摸屏幕片刻,也会收到此事件

android - 如何通过触摸控制动画

java - 当我单击 mainActivity 中的汉堡按钮时,抽屉导航未打开

android - Unity Android with AppCompat Rejecting re-init on previously failed class java.lang.Class

android - 在 Android 上运行时访问布局文件夹

java - onTouchListener 一个ImageView需要点击两次才能起作用,另一个只需点击一次

android - OnTouchListener 在 TranslationAnimation 期间不进行翻译