android 使用ViewFlow實現左右滑動

2021-06-16 14:01:09 字數 3008 閱讀 5484

是的,你沒看錯,是viewflow,不是viewpager,也不是viewflipper。viewflow是乙個開源的android ui庫。它提供了三個元件viewflow、flowindicator和titleflowindicator。它使得由adapter產生的viewgroup中的view可以水平滑動。

一、使用viewflow庫

那麼什麼時候可以使用這個元件呢?文件上說,當你需要在一系列不確定數目的view中滑動時,可以考慮使用viewflow。如果你的view數目確定,你應該使用fragments 或相容庫里的viewpager 。

1、使用viewflow

怎麼使用呢?首先在你的layout檔案中加入:

1

1

然後在你的activity裡面新增如下**用於使用viewflow:

01viewflow viewflow = (viewflow) findviewbyid(r.id.viewflow);

02viewflow.setadapter(myadapter);

03//設定初始view的位置

048);

05//監聽view切換事件,簡單的需求可不監聽

06viewflow.setonviewswitchlistener(newviewswitchlistener()

10});

當然,你也可以使用該庫中的flowindicator為你在多個view中切換時提供乙個指示器,目前該庫已經實現了兩種指示器:一種是圓點指示器flowindicator;另一種是標題指示器titleflowindicator。

2、使用圓點指示器

圓點指示器可以這樣使用:

先在layout中這樣定義

1

然後在activity中呼叫它

1circleflowindicator indic = (circleflowindicator)

2findviewbyid(r.id.viewflowindic);

3viewflow.setflowindicator(indic);

圓點指示器還支援activecolor、inactivecolor、activetype(填充或描邊)、inactivetype(填充或描邊)、fadeout(設定圓點自動隱藏的秒數,若為0則不會自動隱藏)、radius(圓點的半徑)等。

3、使用標題指示器

標題指示器也是先layout裡定義:

1

然後在activity中呼叫它:

1titleflowindicator indicator = (titleflowindicator)

2findviewbyid(r.id.viewflowindic);

3indicator.settitleprovider(mytitleprovider);

4viewflow.setflowindicator(indicator);

ok,以上就是viewflow庫提供三大元件及其用法(來自其文件),當然你也可以把該元件庫打包成jar呼叫。

要注意的是,如果你使用的android sdk版本是android2.2以下,最好在activity中加上如下方法

1@override

2publicvoidonconfigurationchanged(configuration newconfig)

滑動迴圈功能通過在adapter的getcount方法要返回integer.max_value。然後在getview方法中,由於position不斷遞增,可以取餘數。並呼叫viewflow.setselection(3*數)來實現迴圈。

01

02publicvoidstartautoflowtimer()

10};

11

12message message = handler.obtainmessage(0);

13handler.sendmessagedelayed(message, timespan);

14}

另外,原viewflow自帶的例子在這裡,直接down的**無法使用,這個**可以直接匯入。裡面有4個例子,分別展示了帶圓點指示器的viewflow、帶標題指示器的viewflow、view結構不同的viewflow及非同步載入view的viewflow。還可以學習下如何設定自定義元件的屬性。

示例** download.csdn.net/detail/chuchu521/5765123

Android使用Application總結

第二步 配置全域性的context 第三步 使用,使用的時候用的時候根據類的名稱訪問context void onconfigurationchanged configuration newconfig void oncreate 這裡才是真正的入口點。void onlowmemory void o...

Android動畫使用

android動畫基本上分為兩個時代,乙個是3.0 api14 之前的animation動畫,乙個是3.0之後的animator動畫。採用animatorset和objectanimator配合,使用objectanimator進行更精細化控制,並且能夠自動驅動,多個objectanimator組合...

Android 使用Databinding遇到的坑

modle的get和set方法名稱在get set之後的第乙個字母一定要大寫 gradle裡面的apt版本要1.6以上,現在用的是1.8 和butterknife一起用的時候,需要在butterknife呼叫init 之後設定binding的set x方法設定資料物件 如果出現錯誤,一般在錯誤的最後...