GradientTabStrip-微信式底部漸變欄

GradientTabStrip

ICON

繼承自BaseTabStrip,實(shí)現(xiàn)微信式漸變底部Tab效果,為ViewPager添加如PagerTitleStrip一樣的Tab,但支持更多自定義功能,并支持為T(mén)ab增加標(biāo)記點(diǎn)功能,并可以自定義標(biāo)記點(diǎn)各自的位置及顯示狀態(tài)以及背景等。

主要實(shí)現(xiàn)原理為:BaseTabStrip將底層的交互處理好了,具體實(shí)現(xiàn)只要將兩層Drawable不同alpha的疊加,通過(guò)偏移值計(jì)算文字的顏色rgb,繪制以及實(shí)現(xiàn)點(diǎn)擊action的xy判斷position。

預(yù)覽

Screenshots

要求

  • minSdkVersion 9
  • 保持跟其他官方支持庫(kù)版本一致(如:com.android.support:appcompat-v7)

鏈接

使用

  • 基本布局
<am.widget.gradienttabstrip.GradientTabStrip
    android:id="@+id/gts_gts_tabs"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:textColor="@color/color_gradienttabstrip_tab"
    android:textSize="12sp"
    app:gtsBackground="@drawable/bg_common_press"/>
  • 基本代碼
GradientTabStrip tabStrip = (GradientTabStrip) findViewById(id);
GradientTabStrip.GradientTabAdapter adapter = new GradientTabStrip.GradientTabAdapter () {
    @Override
    public Drawable getNormalDrawable(int position, Context context) {
        return null;
    }

    @Override
    public Drawable getSelectedDrawable(int position, Context context) {
        return null;
    }
  
    @Override
    public boolean isTagEnable(int position) {
        return false;
    }
  
    @Override
    public String getTag(int position) {
        return null;
    }
};
tabStrip.bindViewPager(viewPager);

注意

  • 不要使用ViewPage的setCurrentItem(int)方法,其不會(huì)通知到GradientTabStrip進(jìn)行刷新,使用GradientTabStrip的performClick(int)方法
  • 布局時(shí),android:textColor指定的顏色可以使用選擇器,其中android:state_selected="true"狀態(tài)下的顏色會(huì)與普通狀態(tài)下的顏色進(jìn)行漸變
  • GradientTabAdapter中進(jìn)行了改變GradientTabAdapter,需要手動(dòng)通知GradientTabStrip進(jìn)行刷新
  • 不需要Tag小紅點(diǎn),可以使用SimpleGradientTabAdapter替代GradientTabAdapter
  • 保持跟其他官方支持庫(kù)版本一致(如:com.android.support:appcompat-v7),否則可能出現(xiàn)錯(cuò)誤
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,242評(píng)論 25 708
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 6,511評(píng)論 0 17
  • 本人初學(xué)Android,最近做了一個(gè)實(shí)現(xiàn)安卓簡(jiǎn)單音樂(lè)播放功能的播放器,收獲不少,于是便記錄下來(lái)自己的思路與知識(shí)總結(jié)...
    落日柳風(fēng)閱讀 19,222評(píng)論 2 41
  • 媳婦給我說(shuō),她爸不在家,沒(méi)人開(kāi)拖拉機(jī) 昨天晚上不知道什么原因竟然做夢(mèng)穿越到了初中。 夢(mèng)境:班里在上課,我也不知道我...
    文八寶閱讀 832評(píng)論 0 0
  • 1. 最近幾天運(yùn)動(dòng)量徒增,每一個(gè)細(xì)胞的熱情都被激發(fā)出來(lái)了,周五羽毛球,周末足球,酣暢淋漓,熱火朝天,在過(guò)去的很長(zhǎng)一...
    勃然滄海閱讀 384評(píng)論 0 2