Android迴圈滾動控制元件——ViewFlipper的使用
假設現在讓你實現一個垂直迴圈滾動的效果,你的第一反應是什麼?如果是立馬想找第三方或者想著自定義(嘿!真不嫌麻煩),那麼你對ViewFlipper是陌生的,說明這篇部落格對你是有價值的。請往下看:
ViewFlipper是Android中的基礎控制元件,可能在一般開發中很少有人用到,所以很多開發者感覺對這個控制元件很陌生,在控制元件圈裡更遠遠沒有ViewPager出名,但是ViewFlipper用法很簡單,效果卻很不錯。先貼出效果圖:
一、ViewFlipper佈局:
<ViewFlipper android:id="@+id/filpper" android:layout_width="match_parent" android:layout_height="wrap_content" android:autoStart="true" android:flipInterval="2000" android:inAnimation="@anim/anim_come_in" android:outAnimation="@anim/anim_get_out"/>
進入動畫anim_come_in:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="1000"/>
</set>
滑出動畫anim_get_out:
二、ViewFlipper載入的介面佈局<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="1000"/> </set>
建立一個layout_custom,然後根據需求自定義一個介面佈局即可,就不細說了。
三、為ViewFllipper載入自定義介面
ViewFlipper viewFlipper= (ViewFlipper) findViewById(R.id.vf);
注:以上只是迴圈為ViewFlipper載入5條資料的方法,並不是Demo中程式碼。for (int i = 0; i < 5; i++) { View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.layout_custom, null); viewFlipper.addView(view); }
四、ViewFlipper使用介紹
在xml佈局中的方法介紹:
android:autoStart: 設定自動載入下一個View
android:flipInterval:設定View之間切換的時間間隔
android:inAnimation: 設定切換View的進入動畫
android:outAnimation:設定切換View的退出動畫
當然同樣的在程式碼中也可以設定:
isFlipping: 判斷View切換是否正在進行
setFilpInterval:設定View之間切換的時間間隔
startFlipping: 開始View的切換,而且會迴圈進行
stopFlipping: 停止View的切換
setOutAnimation:設定切換View的退出動畫
setInAnimation: 設定切換View的進入動畫
showNext: 顯示ViewFlipper裡的下一個View
showPrevious: 顯示ViewFlipper裡的上一個View