[20]——簡單說說自定義TabLayout的分隔符

想必關(guān)于使用自定義 TabLayout 來作為ViewPager 的指示器,大家都已經(jīng)很熟悉了吧,如果還不了解自定義 TabLayout,可以看看 Showdy 寫的 TabLayout之自定義樣式

本文呢,不再過多的復(fù)述如何自定義 TabLayout 的樣式相關(guān)問題,而是簡單說說如何自定義 TabLayout 的分隔符 Divider。

如下圖所示,是需要實現(xiàn)的頁面效果:

頁面效果

可以看到跟一般的 ViewPager 的Tab 指示器不同,沒有文字下方的指示條,取而代之的是 Tab 之間的分隔符,并且這個分隔符是有上下間距要求的。

廢話不錯說,直接 show me the fxcking code ?。?!

activity中的tab:

<android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="32dp"
        android:background="#ffffff"   //設(shè)置背景色
        app:tabIndicatorHeight="0dp"   //橫線指示條高度設(shè)為0dp
        app:tabPaddingEnd="20dp"
        app:tabPaddingStart="20dp"
        app:tabSelectedTextColor="#FEDA44" //tab被選中的顏色
        app:tabTextColor="#000000">   //未被選中的文字顏色
    </android.support.design.widget.TabLayout>

分隔符 Divider 的自定義樣式文件 divider_vertical.xml(位于 drawable 文件夾下):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#EDECEB"/>
    <size android:width="1dp"/>
    <padding android:bottom="9dp"/>
    <padding android:top="9dp"/>
</shape>

在 Java 文件中設(shè)置:

mTabs.setTabMode(TabLayout.MODE_FIXED); //當Tab較少,且占滿整個屏幕時可以使用這種模式;
mTabs.setTabGravity(TabLayout.GRAVITY_FILL); //配合TabMode使用,用于讓每個標簽平分TabLayout的全部寬度
LinearLayout linearLayout = (LinearLayout) mTabs.getChildAt(0);
linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.divider_vertical)); //設(shè)置分割線的drawable
linearLayout.setDividerPadding(SizeUtils.dip2px(this, 9));   //該方法傳入的參數(shù)為像素的大小,故需要使用dp轉(zhuǎn)px的方法

至此我們就實現(xiàn)了自定義 TabLayout 的風格線的方法了,大家是不是也發(fā)現(xiàn)了 TabLayout 的強大之處了~本次的文章很短,感覺還是很有用的,如果哪位小伙伴遇到了這樣的問題,通過本文幫你解決了疑惑,請點個喜歡吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容