侧滑弹性+加载更多ViewPager

StretchViewPager Github(Github上更新了另一种思路,处理边界和样式)

最近公司有一个ViewPager右边界拉拽进入下一个页面,看了下面这些文章
android自定义ViewPager之——水平滑动弹性效果 代码太长,实现比较复杂,无法拓展拉拽刷新
android viewpager 弹性效果的实现 和上一个问题一样
Android自定义ViewPager:水平滑动弹性效果 拖动会闪烁,不支持多点触控,无法拓展拉拽刷新

效果图:详细代码Github上查看,有Demo可直接运行,实现代码200行

一. 左右弹性ViewPager

1.默认的ViewPager边界活动很死板,加上边界弹性感觉高大上一点。此处解决边界滑动的时候移动,释放的时候回弹。
a. 跟随手势滑动,首先获取滑动方向和距离,然后让其动起来。
通过事件分发方法,在ACTION_DOWN中记录按下的位置lastPosition,此处使用activitPointerId是为了支持多点触控;
因为ViewPager里面可以嵌套很多View,如果在onTouchEvent()中获取,有些时候被子View消费是捕捉不到的。
在ACTION_MOVE时候获取最近一次X方向滑动距离distanceX,接着判断是否是边界需要弹性滑动,调用getStretchEnable()方法;

    public boolean dispatchTouchEvent(MotionEvent ev) {
        int actionId = ev.getAction() & MotionEvent.ACTION_MASK;
        switch (actionId){
            case MotionEvent.ACTION_DOWN
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值