Android编程中ViewPage判断左右滑动方向的方法
2019/7/7 20:07:51
本文主要是介绍Android编程中ViewPage判断左右滑动方向的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文实例讲述了Android编程中ViewPage判断左右滑动方向的方法。分享给大家供大家参考,具体如下:
package com.meityitian.app.views; import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.util.Log; import com.meityitian.app.utils.Debug; /** * 重写,添加了判定滑动方向的方法 * @author zxy * */ public class meityitianViewPager extends ViewPager { private boolean left = false; private boolean right = false; private boolean isScrolling = false; private int lastValue = -1; private ChangeViewCallback changeViewCallback = null; public meityitianViewPager(Context context, AttributeSet attrs) { super(context, attrs); init(); } public meityitianViewPager(Context context) { super(context); init(); } /** * init method . */ private void init() { setOnPageChangeListener(listener); } /** * listener ,to get move direction . */ public OnPageChangeListener listener = new OnPageChangeListener() { @Override public void onPageScrollStateChanged(int arg0) { if (arg0 == 1) { isScrolling = true; } else { isScrolling = false; } Debug.infoByTag("meityitianViewPager", "meityitianViewPager onPageScrollStateChanged : arg0:" + arg0); if (arg0 == 2) { Debug.infoByTag("meityitianViewPager", "meityitianViewPager onPageScrollStateChanged direction left ? " + left); Debug.infoByTag("meityitianViewPager", "meityitianViewPager onPageScrollStateChanged direction right ? " + right); //notify .... if(changeViewCallback!=null){ changeViewCallback.changeView(left, right); } right = left = false; } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { if (isScrolling) { if (lastValue > arg2) { // 递减,向右侧滑动 right = true; left = false; } else if (lastValue < arg2) { // 递减,向右侧滑动 right = false; left = true; } else if (lastValue == arg2) { right = left = false; } } Log.i("meityitianViewPager", "meityitianViewPager onPageScrolled last :arg2 ," + lastValue + ":" + arg2); lastValue = arg2; } @Override public void onPageSelected(int arg0) { if(changeViewCallback!=null){ changeViewCallback.getCurrentPageIndex(arg0); } } }; /** * 得到是否向右侧滑动 * @return true 为右滑动 */ public boolean getMoveRight(){ return right; } /** * 得到是否向左侧滑动 * @return true 为左做滑动 */ public boolean getMoveLeft(){ return left; } /** * 滑动状态改变回调 * @author zxy * */ public interface ChangeViewCallback{ /** * 切换视图 ?决定于left和right 。 * @param left * @param right */ public void changeView(boolean left,boolean right); public void getCurrentPageIndex(int index); } /** * set ... * @param callback */ public void setChangeViewCallback(ChangeViewCallback callback){ changeViewCallback = callback; } }
希望本文所述对大家Android程序设计有所帮助。
这篇关于Android编程中ViewPage判断左右滑动方向的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-18android.permission.read_media_video
- 2024-01-18android_getaddrinfo failed eai_nodata
- 2024-01-18androidmo
- 2024-01-15Android下三种离屏渲染技术
- 2024-01-09Android 蓝牙使用
- 2024-01-06Android对接华为AI - 文本识别
- 2023-11-15代码安全之代码混淆及加固(Android)
- 2023-11-10简述Android语音播报TTS
- 2023-11-06Android WiFi工具类
- 2023-07-22Android开发未来的出路