2016-02-24 17 views
5

Sto utilizzando TabLayout dalla libreria di Android Design Support e desidero applicare uno stile al testo (titolo). Specificamente rendendolo audace. Come ottenerlo in XML?Creazione di testo di TabLayout in grassetto

<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" /> 

risposta

15

Prima questo si deve aggiungere alla styles.xml:

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

Anche se non si desidera modificare la dimensione del testo, è necessario includerlo negli stili altrimenti non verrà mostrato nulla.

Quindi lo stile deve essere applicato a TabLayout utilizzando app:tabTextAppearance non l'attributo 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" /> 

Per abilitare l'allcaps è possibile aggiungere quanto segue alla TabLayoutTextStyle:

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

si è bloccato, ha funzionato anche quando ho dichiarato textColor in stile. – Darpan

0

Aggiungi TabLayout Stile testo in styles.xml


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

e impostare TabLayoutTextStyle come lo stile di Yor proprietà 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

non funziona ... Ho trovato però una soluzione. – VSG24

+0

Segui questo link, Dovrebbe forse funzionare ... [Styling text su TabLayout] (http://stackoverflow.com/a/31271945/4910513) –

0
  1. Una possibilità è quella di aggiungere In styles.xml

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

    dentro "TextAppearance. Design.Tab "con lo stesso nome del genitore

    <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. altra opzione: all'interno il layout direttamente al vostro stile - Diciamo che si chiami myTabLayoutStyle

    style="@style/myTabLayoutStyle" 
    

e dentro quello stile reindirizzare di nuovo per l'altro stile solo per l'aspetto del testo:

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

così:

<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"/> 

all'interno 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> 
Problemi correlati