ViewPager过半(1/2)滑动翻页,超过1/2滑动下页
公司需求要求必须手动触摸滑动超过1/2的时候松开可以滑动下一页,没有超过1/2返回原页,首先肯定是重写viewpager,但是发现效果比较卡顿,只能从源码下手
经过分析,源码滑动的逻辑处理在此处,truncator的属性代表判断的比例值
private int determineTargetPage(int currentPage, float pageOffset, int velocity, int deltaX) { int targetPage; if (Math.abs(deltaX) > mFlingDistance && Math.abs(velocity) > mMinimumVelocity) { targetPage = velocity > 0 ? currentPage : currentPage + 1; } else { final float truncator = currentPage >= mCurItem ? 0.4f : 0.6f; targetPage = (int) (currentPage + pageOffset + truncator); } if (mItems.size() > 0) { final ItemInfo firstItem = mItems.get(0); final ItemInfo lastItem = mItems.get(mItems.size() - 1); // Only let the user target pages we have items for targetPage = Math.max(firstItem.position, Math.min(targetPage, lastItem.position)); } return targetPage; }
将ViewPager的源码修改为以下,改为0.5f:0.5f
private int determineTargetPage(int currentPage, float pageOffset, int velocity, int deltaX) { int targetPage; if (Math.abs(deltaX) > mFlingDistance && Math.abs(velocity) > mMinimumVelocity) { targetPage = velocity > 0 ? currentPage : currentPage + 1; } else { final float truncator = currentPage >= mCurItem ? 0.5f : 0.5f; targetPage = (int) (currentPage + pageOffset + truncator); } if (mItems.size() > 0) { final ItemInfo firstItem = mItems.get(0); final ItemInfo lastItem = mItems.get(mItems.size() - 1); // Only let the user target pages we have items for targetPage = Math.max(firstItem.position, Math.min(targetPage, lastItem.position)); } return targetPage; }
测试完全解决问题,如果使用只需要复制Viewpager和Adapter的文件到项目就可以了,没有必要全部拷入项目,现在我将viewpager相关精简的源码单独剥离出来,可以下载研究下:https://download.csdn.net/download/android_koukou/10747354,希望帮助小伙伴!!!!!
ViewPager过半(1/2)滑动翻页,超过1/2滑动下页相关推荐
- 在报表上打印承上页启下页
打印帐册的时候一般要在页尾打上"启下页"或者"转下页", 在页首打上"承上页"或"承前页",实现步骤如下: 1.先建立兩 ...
- ViewPager实现滑动翻页效果
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...
- android控件翻书效果,android ViewPager实现滑动翻页效果实例代码
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下:import android.content.Context;import androi ...
- android 翻书动画效果怎么做,android ViewPager实现滑动翻页效果实例代码
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...
- android viewpager 上下滚动条,安卓中使用ViewPager2实现上下滑动翻页
目标 实现上下滑动翻页,类似于抖音.快手短视频的操作方式. 实现方案 添加依赖 implementation "androidx.viewpager2:viewpager2:1.0.0&qu ...
- ViewPaper实现翻页,一次滑动一页
xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...
- 程序猿媛:滑动翻页+区域点击事件
Android GridView 滑动翻页+区域点击事件 如有转载,请保留原文地址:"http://www.cnblogs.com/LuoYer/p/3409988.html",谢 ...
- 程序猿媛一:Android滑动翻页+区域点击事件
2019独角兽企业重金招聘Python工程师标准>>> 滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段. ...
- 微信小程序实现滑动翻页效果源码附效果图
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 正文: 微信小程序实现滑动翻页效果 效果图: 源码: <view class="mainFra ...
最新文章
- python迷宫问题求最短路径_用栈求解迷宫问题的所有路径及最短路径程序
- 数学建模——评卷问题
- 员外带你读论文:From RankNet to LambdaRank to LambdaMART: An Overview
- srs代码学习(2)- 线程模型
- 问题集锦13:数据库升级后,程序无法连接数据库
- 平面设计师,请问你的灵感在哪里充电
- 弹簧式止回阀行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- hadoop longwritable类
- OpenGeoSys模拟THMC复杂过程的软件工具
- Starting MySQL. ERROR! The server quit without updating PID file
- C中遇到错误error: jump to label [-fpermissive]的解决办法
- 自适应直方图均衡化matlab 程序,直方图均衡化程序 matlab
- 国外的一些开源网站汇集以及优秀博客的博客(非 CSDN的博客)
- 安徽省省二级c语言准考证号查询系统,网办进度考试查询系统
- 依托智慧警务 打造城市公共安全防控新模式
- PSD格式截图软件 ScreenToLayers 1.2.3中文版
- 浅谈中国现货市场环境对期货市场发展的影响
- 评分卡分箱原则及单调性
- 2020哈工程上岸初复试经验
- 【java】Java中关于String类型的详解