ScrollView滚动监听问题
先解释下参数含义:
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)
scrollX:X方向滚动距离
scrollY:Y方向滚动距离
clampedX:X方向滚动是否到达临界点(包括左侧和右侧)
clampedY:Y方向滚动是否到达临界点(包括顶部和底部)
以前的做法是设置一个变量isScrollDown在onInterceptTouchEvent()当向下滑动时,将isScrollDown置位true,然后在onOverScrolled()中通过clampedY和isScrollDown来判断是否到达了底部。
遇到的问题
测试测过没问题,项目也到了线上,可是突然客户投诉说持仓列表显示不完全,锤子手机。经测试,锤子手机系统自己加了下拉到顶部的一个Hold和滑动到底部的一个回弹效果,导致滑动到底部时clampedY参数并没有置位true。记得以前魅族的手机也有这个效果。
解决方法
解决方法是看的网上一位兄弟提供的思路:
就是判断内容高度-ScrollViw屏显高度-滚动距离是否等于0。此处我判断的是剩余可滚动距离小于等于10dp就触发滚动底部监听
网友评论