tablayout較全的用法(會陸續(xù)補充)

tablayout較全的用法(會陸續(xù)補充)

<android.support.design.widget.TabLayout
            android:id="@+id/tablayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            //背景顏色
            android:background="@color/gray_new"
            app:tabGravity="fill"
            //下劃線顏色
            app:tabIndicatorColor="@color/blue"
            //下劃線高度
            app:tabIndicatorHeight="@dimen/pad_3"
            app:tabMode="fixed"
            //字體樣式(下邊會補充)
            app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
           //選中時的字體顏色             
            app:abTextColor="#000000" />

tablayout 標題文字樣式

<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textSize">20sp</item>
    <item name="android:textColor">@android:color/black</item>
    <item name="android:textStyle">bold</item>
</style>

改變下劃線長度(通過反射的方法)

 public void setIndicator(TabLayout tabs, int leftDip, int rightDip) {
    Class<?> tabLayout = tabs.getClass();
    Field tabStrip = null;
    try {
        tabStrip = tabLayout.getDeclaredField("mTabStrip");
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    }

    tabStrip.setAccessible(true);
    LinearLayout llTab = null;
    try {
        llTab = (LinearLayout) tabStrip.get(tabs);
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

    int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, leftDip, Resources.getSystem().getDisplayMetrics());
    int right = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, rightDip, Resources.getSystem().getDisplayMetrics());

    for (int i = 0; i < llTab.getChildCount(); i++) {
        View child = llTab.getChildAt(i);
        child.setPadding(0, 0, 0, 0);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1);
        params.leftMargin = left;
        params.rightMargin = right;
        child.setLayoutParams(params);
        child.invalidate();
    }
}

在oncreate中調(diào)用修改長度

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評論 25 708
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,388評論 0 17
  • 飄飄 在空中飄飄 落在天邊浸染的葉 風兒 風聲在心中發(fā)酵 大自然是個大喇叭 把你從封閉的室內(nèi)引到露天 作為一個聽眾...
    宏木每閱讀 311評論 0 1
  • 史蒂夫·喬布斯劇場,開場的喬布斯錄音播放,似乎是在紀念一個時代,也在告別一個時代。如此的背景,讓這一次的蘋果秋季發(fā)...
    時鳳衛(wèi)閱讀 999評論 0 6
  • 我喜歡做飯,但是又特別怕當沾著水的蔬菜倒進鍋里時熱油瘋狂濺起,尤其是讓你要炸一個洋蔥蝦仁餅時,那一下子燥起來的...
    道格拉斯企鵝閱讀 291評論 0 2

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