代码之家  ›  专栏  ›  技术社区  ›  kanudo

只需在没有第三方库的情况下滑动任何普通Android视图

  •  -2
  • kanudo  · 技术社区  · 7 年前

    我想在滑动的同时移动应用程序中的任何普通视图。

    OnTouchListener 在里面 方法但是我 无法随滑动移动视图

    我想随着滑动移动视图。

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

    任何帮助都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  1
  •   TrackingToon    7 年前

    你只需要使用 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;
        }
    });