Android - ViewPagerHelper - 可以识别出ViewPager滑动方向的帮助类

Demo

地址:https://github.com/biezhihua/ViewPagerHelper.git

ViewPagerHelper

一个可以识别出ViewPager滑动方向的帮助类。

public interface IViewPagerTrendListener {

    /**
     * 当一个页面被完全选定时调用。该方法会在{@link #onPrePageSelected(int)}之后被调用。
     *
     * @param selectedPosition 当前位置
     */
    void onFullPageSelected(int selectedPosition);

    /**
     * 当滑动方向被确定时调用
     *
     * @param direct           方向 {@link #DIRECT_LEFT} {@link #DIRECT_NONE} {@link #DIRECT_RIGHT}
     * @param selectedPosition 当前位置
     * @param nextPosition     下一个位置
     */
    void onDirectSelected(int direct, int selectedPosition, int nextPosition);

    /**
     * 当一个页面被选定时调用。该方法会在{@link #onFullPageSelected(int)}之前被调用。
     *
     * @param position 位置
     */
    void onPrePageSelected(int position);

    /**
     * 在当前方向下滑动的分数
     *
     * @param direct           方向
     * @param selectedPosition 当前位置
     * @param nextPosition     下一个位置
     * @param fraction         分数
     */
    void onFractionPage(int direct, int selectedPosition, int nextPosition, float fraction);
}

从第一页滑动到第二页时执行日志如下:

06-21 10:52:17.406  4861  4861 D MainActivity: onDirectSelected() called with: direct = [2], selectedPosition = [1], nextPosition = [2]
06-21 10:52:17.407  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.065740705]
06-21 10:52:17.425  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.17685187]
06-21 10:52:17.440  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.26666665]
06-21 10:52:17.442  4861  4861 D MainActivity: onPrePageSelected() called with: position = [2]
06-21 10:52:17.443  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.29444444]
06-21 10:52:17.459  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.47962964]
06-21 10:52:17.479  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.66388893]
06-21 10:52:17.496  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.7759259]
06-21 10:52:17.514  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.85925925]
06-21 10:52:17.531  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.9129629]
06-21 10:52:17.548  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.95092595]
06-21 10:52:17.566  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.9731481]
06-21 10:52:17.584  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.98703706]
06-21 10:52:17.601  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.9944445]
06-21 10:52:17.618  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.9981482]
06-21 10:52:17.636  4861  4861 D MainActivity: onFractionPage() called with: direct = [2], selectedPosition = [1], nextPosition = [2], positionOffset = [0.9990741]
06-21 10:52:17.740  4861  4861 D MainActivity: onFullPageSelected() called with: selectedPosition = [2]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值