设置自定义GestureListener后,ListView停止接受基本手势

时间:2013-09-18 12:45:20

标签: android android-listview gesture onfling

我创建了一个带有自定义onFling方法的GestureListener。我没有覆盖onScroll或onSingleTapConfirmed。

我创建了这样的监听器:

   ListView listView=(ListView)findViewById(android.R.id.list);
        final GestureDetector gestureDetector = new GestureDetector(new CustomGestureListener(this));
        if (listView != null)
          listView.setOnTouchListener(new View.OnTouchListener()
          {
            @Override
            public boolean onTouch(View v, MotionEvent event)
            {
              if (gestureDetector.onTouchEvent(event))
              {
                return false;
              }
              return true;
            }
          });

之后,onFling事件工作正常,但单个触摸和滚动事件消失了,我的列表视图已经死了。我该怎么办?

2 个答案:

答案 0 :(得分:1)

试试这种方式

ListView listView=(ListView)findViewById(android.R.id.list);
        final GestureDetector gestureDetector = new GestureDetector(new CustomGestureListener(this));
        if (listView != null)
          listView.setOnTouchListener(new View.OnTouchListener()
          {
            @Override
            public boolean onTouch(View v, MotionEvent event)
            {
              return gestureDetector.onTouchEvent(event); //UPDATE HERE

            }
          });

答案 1 :(得分:1)

更改为:

        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
          return gestureDetector.onTouchEvent(event);
        }

对于第二个问题,请使用SimpleOnGestureListener。它有你想要的方法onSingleTapConfirmed()& onFling()