Android 左右滑屏 方向判断 ViewPager
来源:互联网 发布:沪金td数据从哪能下载 编辑:程序博客网 时间:2024/05/23 01:15
http://www.cnblogs.com/meiyitian/archive/2012/01/29/2330994.html
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; }}
0 0
- Android 左右滑屏 方向判断 ViewPager
- Android 左右滑屏 方向判断 ViewPager
- Android 左右滑屏 方向判断 ViewPager
- ViewPager 判断左右滑动的方向
- android判断viewpager滑动方向
- android ViewPager如何判断左右滑动
- android中的左右滑屏实现By ViewPager
- OSC首发:android中的左右滑屏实现By ViewPager
- OSC首发:android中的左右滑屏实现By ViewPager
- android中的左右滑屏实现By ViewPager
- Android中通过ViewPager实现左右滑屏(上)
- Android 中的通过 ViewPager 实现左右滑屏
- android中的左右滑屏实现By ViewPager
- OSC首发:android中的左右滑屏实现By ViewPager
- Android中通过ViewPager实现左右滑屏(下)
- OSC首发:android中的左右滑屏实现By ViewPager
- android中的左右滑屏实现By ViewPager
- ViewPager+Fragment实现左右滑屏
- java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 【 解决方案】
- 使用ContentProvider管理多媒体内容
- 重要提醒,万能五笔变身超级大流氓升级超级流氓团组团静默安装!
- Cubietruck---10.Linux3.3_开机log的打印分析
- nginx之worker_connections
- Android 左右滑屏 方向判断 ViewPager
- Java干货之回头补基础(一) ——Callback机制个人理解及应用
- 多线程并发的cache实现
- Cubietruck---11. Linux3.3_serail串口驱动分析
- iOS 角度与弧度的转换
- iOS 进度框(二) SVProgressHUD
- Android开发---ListView实现局部刷新及删除
- JSP九大内置对象及四个作用域
- 浅谈magic-check——美化单选款、复选框