【Android】ScrollView裏面模擬鼠標滾輪滑動,即同向滑動

正常ScrollView的滑動方式是,手指上滑數據向下滾動,手指下滑數據向上滾動;

然後現在有個需求,手指的滑動要跟電腦鼠標滾輪一樣,上劃就向上滾動到頂,下劃滾動到底。

測試代碼如下:滑動幅度可以修改scale,ll_content就是scrollview的子佈局

    private int lastX;
    private int lastY;
    /**
     * 測試滾動反向
     */
    @SuppressLint("ClickableViewAccessibility")
    private void testScorllReverse(){
        final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollview_main);
        LinearLayout llContent = (LinearLayout) findViewById(R.id.ll_content);
        llContent.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                //屏蔽父控件攔截onTouch事件
                v.getParent().requestDisallowInterceptTouchEvent(true);
                int action = event.getAction();
                switch (action) {
                    case MotionEvent.ACTION_DOWN:
                        lastX = (int) event.getRawX();
                        lastY = (int) event.getRawY();
                        break;
                    case MotionEvent.ACTION_MOVE:
                        int dx =(int)event.getRawX() - lastX;
                        int dy =(int)event.getRawY() - lastY;

                        if(dy > 0){//手指向下滑動
                        }else{//手指向上滑動
                        }
                        float scale = 0.25f;
                        scrollView.smoothScrollBy(0, (int) (dy*scale));

                        break;
                    default:
                        break;

                }
                return true;
            }
        });

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章