【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;
            }
        });

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值