2016-02-24 97 views
5

我使用Android設計支持庫中的TabLayout,並且想要設置其文本(標題)的樣式。特別使它大膽。如何在XML中實現?製作TabLayout文本粗體

<android.support.design.widget.TabLayout 
android:id="@+id/sliding_tabs" 
android:layout_width="match_parent" 
app:tabTextColor="@color/white" 
app:tabSelectedTextColor="@color/white" 
app:tabIndicatorColor="@color/accent" 
android:layout_height="wrap_content" 
app:tabIndicatorHeight="3dp" /> 

回答

15

首先這必須被添加到styles.xml:

<style name="TabLayoutTextStyle"> 
    <item name="android:textSize">16sp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

即使你不想改變文字大小,你必須包括它的樣式否則不會顯示任何內容。

然後該樣式必須應用到TabLayout使用app:tabTextAppearance而不是style屬性!

<android.support.design.widget.TabLayout 
android:id="@+id/sliding_tabs" 
android:layout_width="match_parent" 
app:tabTextColor="@color/white" 
app:tabSelectedTextColor="@color/white" 
app:tabIndicatorColor="@color/accent" 
android:layout_height="wrap_content" 
app:tabIndicatorHeight="3dp" 
app:tabTextAppearance="@style/TabLayoutTextStyle" /> 

要啓用ALLCAPS您可以添加以下到TabLayoutTextStyle

<item name="android:textAllCaps">true</item> 
+5

它崩潰,工作時,我也聲明textColor的風格。 – Darpan

0

添加TabLayout文本樣式在styles.xml


<style name="TabLayoutTextStyle"> 
    <item name="android:textStyle">bold</item> 
</style> 

並設置TabLayoutTextStyle爲風格,以侑TabLayout性能。


<android.support.design.widget.TabLayout 
android:id="@+id/sliding_tabs" 
android:layout_width="match_parent" 
app:tabTextColor="@color/white" 
app:tabSelectedTextColor="@color/white" 
app:tabIndicatorColor="@color/accent" 
android:layout_height="wrap_content" 
app:tabIndicatorHeight="3dp" 
style="@style/TabLayoutTextStyle" /> 
+0

不工作...我找到了一個解決方案。 – VSG24

+0

按照這個鏈接,它應該也許工作... [TabLayout上的樣式文本](http://stackoverflow.com/a/31271945/4910513) –

0
  1. 一種選擇是添加在styles.xml

    <item name="android:textStyle">bold</item> 
    

    內部「TextAppearance。 Design.Tab「與父母同名

    <style name="TextAppearance.Design.Tab" parent="TextAppearance.Design.Tab"> 
        <item name="android:textSize">15sp</item> 
        <item name="android:textStyle">bold</item> 
        <item name="android:textColor">?android:textColorSecondary</item> 
        <item name="textAllCaps">true</item> 
        <item name="android:singleLine">true</item> 
    </style> 
    
  2. 其他選項:內部佈局直接到你的風格 - 讓說你怎麼稱呼它myTabLayoutStyle

    style="@style/myTabLayoutStyle" 
    

和風格里面再次重定向到其他風格只是文本外觀:

 <item name="tabTextAppearance">@style/myTabTextStyle</item> 

這樣的:

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    style="@style/myTabLayoutStyle" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/toolbar" 
    android:background="?attr/colorPrimary" 
    android:elevation="600dp" 
    android:minHeight="?attr/actionBarSize" 
    app:tabGravity="fill" 
    android:singleLine="true" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

inside styles.xml:

<style name="myTabLayoutStyle" parent="Widget.Design.TabLayout"> 
    <item name="tabMaxWidth">@dimen/tab_max_width</item> 
    <item name="tabIndicatorColor">?attr/colorAccent</item> 
    <item name="tabIndicatorHeight">4dp</item> 
    <item name="tabPaddingStart">3dp</item> 
    <item name="tabPaddingEnd">3dp</item> 
    <item name="android:singleLine">true</item> 
    <item name="tabBackground">?attr/selectableItemBackground</item> 
    <item name="tabSelectedTextColor">?android:textColorPrimary</item> 
    <item name="tabTextAppearance">@style/myTabTextStyle</item> 
    </style> 

    <style name="myTabTextStyle"> 
     <item name="android:textSize">15sp</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textColor">?android:textColorSecondary</item> 
     <item name="textAllCaps">true</item> 
     <item name="android:singleLine">true</item> 
    </style>