Android編程中ViewPage判斷左右滑動(dòng)方向的方法
本文實(shí)例講述了Android編程中ViewPage判斷左右滑動(dòng)方向的方法。分享給大家供大家參考,具體如下:
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;
/**
* 重寫,添加了判定滑動(dòng)方向的方法
* @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) {
// 遞減,向右側(cè)滑動(dòng)
right = true;
left = false;
} else if (lastValue < arg2) {
// 遞減,向右側(cè)滑動(dòng)
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);
}
}
};
/**
* 得到是否向右側(cè)滑動(dòng)
* @return true 為右滑動(dòng)
*/
public boolean getMoveRight(){
return right;
}
/**
* 得到是否向左側(cè)滑動(dòng)
* @return true 為左做滑動(dòng)
*/
public boolean getMoveLeft(){
return left;
}
/**
* 滑動(dòng)狀態(tài)改變回調(diào)
* @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程序設(shè)計(jì)有所幫助。
- Android中實(shí)現(xiàn)監(jiān)聽ScrollView滑動(dòng)事件
- android 通過向viewpage中添加listview來完成滑動(dòng)效果(類似于qq滑動(dòng)界面)
- 解析Android中實(shí)現(xiàn)滑動(dòng)翻頁之ViewFlipper的使用詳解
- Android中實(shí)現(xiàn)水平滑動(dòng)(橫向滑動(dòng))ListView示例
- Android利用ViewPager實(shí)現(xiàn)滑動(dòng)廣告板實(shí)例源碼
- Android App中使用ViewPager+Fragment實(shí)現(xiàn)滑動(dòng)切換效果
- Android中RecyclerView實(shí)現(xiàn)橫向滑動(dòng)代碼
- android配合viewpager實(shí)現(xiàn)可滑動(dòng)的標(biāo)簽欄示例分享
- Android App中ViewPager所帶來的滑動(dòng)沖突問題解決方法
- Android實(shí)現(xiàn)View滑動(dòng)的6種方式
相關(guān)文章
Android XRecyclerView實(shí)現(xiàn)多條目加載
這篇文章主要為大家詳細(xì)介紹了Android XRecyclerView實(shí)現(xiàn)多條目加載效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
在Android Studio中設(shè)置Button透明度的方法詳解
本文將介紹在Android Studio中如何設(shè)置Button的透明度,首先,我們將展示實(shí)現(xiàn)該功能的整個(gè)流程,并使用表格列出每個(gè)步驟,然后,我們將詳細(xì)說明每個(gè)步驟需要做什么,并提供相應(yīng)的代碼和注釋,需要的朋友可以參考下2023-09-09
Android 滑動(dòng)監(jiān)聽RecyclerView線性流+左右劃刪除+上下移動(dòng)
這篇文章主要介紹了Android 滑動(dòng)監(jiān)聽RecyclerView線性流+左右劃刪除+上下移動(dòng)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
Android編程仿Iphone拖動(dòng)相片特效Gallery的簡單應(yīng)用示例
這篇文章主要介紹了Android編程仿Iphone拖動(dòng)相片特效Gallery的簡單應(yīng)用,結(jié)合實(shí)例形式分析了Android圖形拖動(dòng)特效的實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-10-10
Android通過XListView實(shí)現(xiàn)上拉加載下拉刷新功能
這篇文章主要為大家詳細(xì)介紹了Android通過XListView實(shí)現(xiàn)上拉加載下拉刷新功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android數(shù)據(jù)緩存框架內(nèi)置ORM功能使用教程
這篇文章主要為大家介紹了Android數(shù)據(jù)緩存框架內(nèi)置ORM功能使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

