当它们都在代码中时,OnSwipeTouchListener和OnTouchListener不起作用

时间:2014-05-01 20:54:02

标签: android imageview ontouchlistener

我正在创建一个Android应用程序,我必须点击图片,但也向左/向右滑动。 但是,当我同时在我的代码中有这两个代码片段时,只有OnSwipeTouchListener工作。侦听器都在同一个ImageView上。

代码1:

     pic.setOnTouchListener(new OnSwipeTouchListener(this) {
            @Override
          public void onSwipeLeft() {

                Toast.makeText(MainActivity.this, "LEFT", Toast.LENGTH_LONG).show();
         }
             public void onSwipeRight() {

            Toast.makeText(MainActivity.this, "RIGHT", Toast.LENGTH_LONG).show();
            }
        });

代码2:

  pic.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            Toast.makeText(MainActivity.this, "CLICK WORKS", Toast.LENGTH_LONG).show();     
            return true;
        }
    });

但是当我只有“Code 2”时,OnTouchListener代码完美无缺。

为什么?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我不完全确定OnSwipeTouchListener是什么。但是一个视图只能有一个OnTouchListener。第二次调用pic.setOnTouchListener()也会删除第一个侦听器,因此两者无法同时工作是合乎逻辑的。

您要做的是创建一个实现View.OnTouchListener的对象,并处理滑动和单击。请参阅http://developer.android.com/reference/android/view/GestureDetector.html以获得良好的起点。

答案 1 :(得分:0)

为此,我最终实现了一个带有ImageView片段的Viewpager。功能上的滑动已经以这种方式集成。