只需轻扫任何普通Android视图,无需第三方库

时间:2017-08-06 06:34:27

标签: java android listview android-recyclerview swipe

我想在我的应用中移动任何普通视图以及滑动。

我可以使用 onTouch 方法中的 OnTouchListener 检测滑动。但是无法移动视图以及滑动

我想将视图与滑动一起移动。

我认为我需要在onTouch方法中实现一些东西来移动视图或项目以及滑动,但我不知道。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

你只需要view.setTranslationX(diffX)用于X坐标,view.setTranslationY(diffY)用于Y坐标,而MotionEvent.ACTION_MOVE用于onTouch()方法。

view.setOnTouchListener(new View.OnTouchListener() {

    float downX, downY, nowX, nowY, diffX, diffY;

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

        switch (event.getAction()) {

            case MotionEvent.ACTION_DOWN:

                downX = event.getRawX();
                downY = event.getRawY();
                break;

            case MotionEvent.ACTION_MOVE:

                nowX = event.getRawX();
                nowY = event.getRawY();

                diffX = nowX - downX;
                diffY = nowY - downY;

                v.setTranslationX(diffX);
                v.setTranslationY(diffY);

                break;

            case MotionEvent.ACTION_UP:

                break;
        }
        return true;
    }
});