时间:2021-05-20
做项目的时候,会碰到用viewpager + fragments去实现多页滑动。有些时候需要完成:界面在滑动到一半或是一半以上的时候,需要把title之类的切换到下一个页面。这个时候仅仅依赖Viewpager的接口是不能判断,这里提供一个方法:判断viewpager是左滑还是右滑,同时对滑过一半的时候(这个参数可以调),进行相关操作。
//定义两个变量,这个两个变量是表示滑动时候,positionOffset 是从大到 //小的变化,还是从小到大的变化。用于在滑动时候,避免多次调用一个方法 private boolean isSmallToBig = true; private boolean isBigToSmall = false; //记录上一次滑动的positionOffsetPixels值 private int lastValue = -1; @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (positionOffset != 0) { mCurrentPage = position; boolean isLeft = true; if (lastValue >= positionOffsetPixels) { //右滑 isLeft = false; } else if (lastValue < positionOffsetPixels) { //左滑 isLeft = true; } setIndiactorView(positionOffset,isLeft); } lastValue = positionOffsetPixels; } private void setIndiactorView(float positionOffset,boolean isLeft) { //设定滑动的边界,这里设置的滑动到一半 float radiusOffsetHead = 0.5f; //如果滑动小于一半,通过isSmallToBig这个变量来避免多次调用 // initIndicatorView 方法 if (positionOffset <= radiusOffsetHead && !isSmallToBig) { initIndicatorView(mCurrentPage); isSmallToBig = true; isBigToSmall = false; } else if (positionOffset > radiusOffsetHead && !isBigToSmall) { //超过一半。如果是左滑,就-1,如果是右滑,就+1 int currnt = isLeft ? mCurrentPage + 1 : mCurrentPage - 1; initIndicatorView(currnt); isBigToSmall = true; isSmallToBig = false; } }以上这篇ViewPager 滑动一半的判断方法以及左滑右滑判断实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近做了一个类似系统操作的左滑删除的demo,用的taro框架,和大家分享一下~首先需要考虑的有以下几点:1)布局;2)判断是左滑还是右滑,左滑时出现删除,右滑
本文实例为大家分享了微信小程序实现页面左右滑动的具体代码,供大家参考,具体内容如下效果:wxml文件{{open?'手指左滑':'手指右滑'}}我是内容
探探左右滑动的区别是:左滑是不喜欢,右滑是喜欢。交友时用户是可以选择向左滑还是向右滑的,方向不同意思也是不同的。 探探是由探探科技(北京)有限公司于2014年
最近想实现Android左滑弹出菜单框,右滑消失菜单这个个功能。了解了一下Android的滑动事件,必须是在view组件或者Activity上实现,同时必须实现
左滑删除在移动端很常见。下面我们一起来封装一下这个简单的小组件。我们想要是:当滑块没有超过删除按钮的一半时自动回到起点位置。滑动距离超过一半滑动到最大值(删除按