【Android Tricks 6】ViewPager首頁與尾頁的滑動動作響應

來源:互聯網
上載者:User

標籤:android   style   blog   class   code   java   

  ViewPager可以說是Android應用中使用比較廣發的一個組件了,它可以協助我們很

方便地實現滑動更換View的效果,剛好最近搞的一個項目有一個需求用到了這個,同

時是要能在首頁和尾頁滑動時可以進行響應,而不是像預設的那樣沒有任何動作,所

以稍微研究了下,希望可以對大家有所協助。

  在分析了需求之後,發現這個應該是和ViewPager的換頁監聽有聯絡,於是做了個小

demo,通過實驗來尋找問題的解決方案。

  首先貼出換頁監聽器的幾個public方法以及第一個方法中state數字代表的含義,如下

圖所示。

這裡我們重點關注前兩個方法,它們和scroll動作相關,具體實驗代碼如下:

private  OnPageChangeListener pageChangeListener = new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stub}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stubLog.d("TestActivity", arg0+","+arg1+","+arg2);}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stubLog.d("TestActivity", arg0+"");}};

當在首頁往左滑動時,log資訊如右:,可以發現以以1開頭,以0結尾

(數位含義請參看上面所給圖中關於state的解釋);當在中間頁向右滑動時,log資訊

如下所示,此時從1經曆了2的狀態,最後到了0狀態;當在最後一頁繼續向右滑動時,


log資訊如右:,和情況1類似,狀態從1變到了0,但是第二行是以2開

頭的,而情況1是以0開頭的(測試案例一共是3頁,也就是說第二行開頭數字代表的

是該頁的編號),實驗到此就結束了。

  綜上可得,如果要在首頁往左滑動時響應動作可以如下寫,同理如果要想在最後一

private  OnPageChangeListener pageChangeListener = new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stub}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub//Log.d("TestActivity", arg0+","+arg1+","+arg2);curPage = arg0;}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub//Log.d("TestActivity", arg0+"");if (preState == 1 && arg0 == 0 && curPage == 0) {your action...}preState = arg0;}};

頁往右滑動時響應動作,只要將判斷第三個方法中判斷條件中的"curPage == 0"改為

"curPage == view size - 1"即可。

  在這個實驗中我們只使用了部分資料,其他資料其實也是很有用的,比如你要想

實現滑動到頁面的一半時響應動作,就可以在onPageScrolled方法中檢測第二個參數

的變化等等,所以動動手,可以學會的東西還是挺多的。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.