Android編程中ViewPage判斷左右滑動方向的方法
更新時間:2015年10月27日 15:22:45 作者:飄雪凌風
這篇文章主要介紹了Android編程中ViewPage判斷左右滑動方向的方法,涉及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; } /** * 滑動狀態(tài)改變回調 * @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中實現(xiàn)監(jiān)聽ScrollView滑動事件
- android 通過向viewpage中添加listview來完成滑動效果(類似于qq滑動界面)
- 解析Android中實現(xiàn)滑動翻頁之ViewFlipper的使用詳解
- Android中實現(xiàn)水平滑動(橫向滑動)ListView示例
- Android利用ViewPager實現(xiàn)滑動廣告板實例源碼
- Android App中使用ViewPager+Fragment實現(xiàn)滑動切換效果
- Android中RecyclerView實現(xiàn)橫向滑動代碼
- android配合viewpager實現(xiàn)可滑動的標簽欄示例分享
- Android App中ViewPager所帶來的滑動沖突問題解決方法
- Android實現(xiàn)View滑動的6種方式
相關文章
android使用ItemDecoration給RecyclerView 添加水印
本篇文章主要介紹了android使用ItemDecoration給RecyclerView 添加水印,介紹了自定義Drawable來完成水印圖片和使用ItemDecoration來布局水印,有興趣的可以了解一下。2017-02-02Android開發(fā)中ImageLoder進行圖片加載和緩存
這篇文章主要介紹了Android開發(fā)中ImageLoder進行圖片加載和緩存的相關資料,需要的朋友可以參考下2016-04-04