我可以向widget中的AdapterViewFlipper添加垂直滑动手势吗?

时间:2013-09-23 08:46:46

标签: android widget

我正在使用包含AdapterViewFlipper的Android widget。 AdapterViewFlipper可以自动翻转视图(包括每个视图)。但我们可以通过垂直滑动手动切换到下一个或上一个视图吗?这是否由AdapterViewFlipper(类似于StackView)自动支持,或者我必须在每个视图中添加手势监听器?

提前致谢。

1 个答案:

答案 0 :(得分:0)

http://developer.android.com/training/gestures/detector.html#detect
您可以使用GestureDetector

执行此操作
private GestureDetectorCompat mDetector;

mDetector = new GestureDetectorCompat(this, new MyGestureListener());

然后你可以@Override活动的onTouchEvent。

@Override 
    public boolean onTouchEvent(MotionEvent event){ 
        this.mDetector.onTouchEvent(event);
        return super.onTouchEvent(event);
    }

或者您也可以为AdapterViewFlipper

设置setOnTouchListener
 avf.setOnTouchListener(new View.OnTouchListener(){
     @Override
     public boolean onTouch(View v, MotionEvent event) {
         return mDetector.onTouchEvent(event);
     }
 });

class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
    private static final String DEBUG_TAG = "Gestures"; 

    @Override
    public boolean onDown(MotionEvent event) { 
        Log.d(DEBUG_TAG,"onDown: " + event.toString()); 
        return true;
    }

    @Override
    public boolean onFling(MotionEvent start, MotionEvent finish, float velocityX, float velocityY) {
        if (start.getRawY() < finish.getRawY()) {
            //down
        } else {
            //up
        }
    return true;
    }
}

这可能也有帮助 http://www.techrepublic.com/blog/android-app-builder/use-androids-gesture-detector-to-translate-a-swipe-into-an-event/