顯示周邊部分子頁面的viewpager(一屏顯示多個子頁面)

來源:互聯網
上載者:User

   由於智能電視並不像手機那樣支援手勢劃屏,所以在電視上展示多屏資料時,需要提示使用者翻頁還有更多內容。

   一般使用較多的方法就是箭頭提示,比如:

  還有一種更好的做法就是將下一頁的部分展現出來,直觀提示使用者還有更多的頁面。這種展現方式結合metro風格,被越來越廣泛的盒子和電視廠商採用,例如小米,樂視等。

  下面我們就將動手實現一個類似風格的demo,省去若干查詢資料,附代碼。

  在代碼中,實現了一個顯示部分周邊子頁面的viewpager ,這個控制項可以獨立使用。在使用的時候需要注意的是:設定viewpager的寬度。

  這個寬度需要根據螢幕的寬度來計算,比如螢幕寬度1080像素,那麼viewpager的寬度設定為960,那麼viewpager的每個周邊就可以露出60像素的寬度。

  效果的實現重點在於viewgroup的setClipChildren(false),表示是否限制子View在其範圍內,在animations動畫以及本文的情況下可以發揮很大的作用,預設為true。

  注意:setClipChildren(false)在3.0以上版本中,開啟了硬體加速後將不能正常工作,所以需要將其設定為軟體加速。

  設定軟硬體加速使用 setLayerType(View.LAYER_TYPE_SOFTWARE, null); 為了能夠在2.2系統中使用,我們使用反射完成該函數的調用,如下:

try {         Method setLayerTypeMethod = this.getClass().getMethod("setLayerType" , new Class[] {int.class , Paint.class});         setLayerTypeMethod.invoke( this, new Object[] {LAYER_TYPE_SOFTWARE , null});     } catch (NoSuchMethodException e) {         // Older OS, no HW acceleration anyway     } catch (IllegalArgumentException e) {         e.printStackTrace();     } catch (IllegalAccessException e) {         e.printStackTrace();     } catch (InvocationTargetException e) {         e.printStackTrace();     }


  最終,demo中為圖片!

  附demo:點我下載


  參考資料:

   http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html


   https://gist.github.com/devunwired/8cbe094bb7a783e37ad1


   http://www.trinea.cn/android/viewpager%E5%AE%9E%E7%8E%B0%E7%94%BB%E5%BB%8A%E4%B8%80%E5

%B1%8F%E5%A4%9A%E4%B8%AAfragment%E6%95%88%E6%9E%9C/


  原文連結:http://www.67tgb.com/?p=623

  轉載註明:望月聽濤

相關關鍵詞:
相關文章

聯繫我們

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