ViewPager 滑动一半的判断方法以及左滑右滑判断实例
更新时间:2017年04月22日 10:33:40 投稿:jingxian
下面小编就为大家带来一篇ViewPager 滑动一半的判断方法以及左滑右滑判断实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
做项目的时候,会碰到用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 滑动一半的判断方法以及左滑右滑判断实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Android选择与上传图片之PictureSelector教程
这篇文章主要介绍了在Android中对于图片的选择与上传方法,本文介绍了PictureSelector的相关使用教程,学习Android的同学进来看看吧2021-08-08
Flutter使用texture_rgba_renderer实现桌面端渲染视频详解
这篇文章主要为大家介绍了Flutter如何使用texture_rgba_renderer实现桌面端渲染视频,文中的示例代码讲解详细,需要的可以了解一下2023-07-07
Android列表实现(3)_自定义列表适配器思路及实现代码
Android 自定义列表适配器会提供很多的便利;下面的例子为使用自定义的列表适配器来显示列表,感兴趣的朋友可以研究下2012-12-12


最新评论