android viewpager判断滑动方向,ViewPager 滑动一半的判断方法以及左滑右滑判断实例...

在Android开发中,使用ViewPager结合Fragments创建多页滑动时,有时需要在滑动到一半或以上时更新标题等元素。本文提供了一个方法,用于判断ViewPager的滑动方向(左滑或右滑),并在滑过一半时执行相应操作。通过监听onPageScrolled方法,记录positionOffsetPixels的变化,从而确定滑动方向,并调整指示器视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做项目的时候,会碰到用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 滑动一半的判断方法以及左滑右滑判断实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持找一找教程网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值