ListView - 仿照IOS拉到上下底部仍可继续拉并自动回弹
2016-03-23 15:43
453 查看
PART_ONLY 自定义类继承
以上。如有错误和疑问,欢迎指正提出。catface.wyh@gmail.com
ListView,覆写
overScrollBy()
public class CListView extends ListView { private static final int MAX_OVERSCROLLY_DISTANCE = 200; private Context mCtx; private int mMaxYOverscrollDistance; public CListView(Context context) { super(context); mCtx = context; initBounceListView(); } public CListView(Context context, AttributeSet attrs) { super(context, attrs); mCtx = context; initBounceListView(); } public CListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mCtx = context; initBounceListView(); } private void initBounceListView() { // get the density of the screen and do some maths with it on the max overscroll distance // variable so that you get similar behaviors no matter what the screen size final DisplayMetrics metrics = mCtx.getResources().getDisplayMetrics(); final float density = metrics.density; mMaxYOverscrollDistance = (int) (density * MAX_OVERSCROLLY_DISTANCE); /** * @author WangYehan * * @desc 上面的mMaxYOverscrollDistance有点问题,直接改成MAX_OVERSCROLLY_DISTANCE效果才出来。。 */ mMaxYOverscrollDistance = MAX_OVERSCROLLY_DISTANCE; } @Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { /** * @author WangYehan * * @desc 摩擦摩擦 */ if (!isTouchEvent) { // 禁止惯性滑动 if ((scrollY < 0 && deltaX < 0) || (scrollY > getHeight() && deltaX > 0)) { deltaY = 0; } } // This is where the magic happens, we have replaced the incoming maxOverScrollY with our own custom variable mMaxYOverscrollDistance; return super.overScrollBy(deltaX, (deltaY + 1) / 2, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, mMaxYOverscrollDistance, isTouchEvent); } }
以上。如有错误和疑问,欢迎指正提出。catface.wyh@gmail.com
相关文章推荐
- iOS - 类扩展与分类的区别
- iOS 申请测试用的远程推送证书
- Undefined symbols for architecture arm64:问题解决方法
- 百度地图集成问题(ios)
- IOS 开发创建xib文件并且与视图控制器绑定
- iOS 动画Animation-4-2: CALayer子类:CAGradientLayer,CATextLayer,CATiledLayer
- 手势解锁demo
- iOS 宏(define)与常量(const)使用
- 探究iOS开发中多线程之间的通信
- iOS开发小技巧
- Target 'Pods' of project 'Pods' was rejected as an implicit dependency for 'libPods.a' because its a
- iOS开发中,单个页面屏幕旋转问题
- 本篇文章,主要收录本人工作时iOS开发中代码写法的一些奇淫技巧,会持续更新中~
- iOS Quartz2D绘制简单图形
- 高斯模糊效果的简单实现
- 关于IOS我要学的d
- iOS 分类(category)、扩展(Extension)
- iOS9横竖屏设置的处理方法和实例讲解
- ios 调试技巧
- iOS视频边下边播–缓存播放数据流