ViewPage判斷左右滑動

來源:互聯網
上載者:User

判斷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;     } }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.