2016-04-04 14 views
6

Ecco quello che ho fatto: ho creato uno stile per il testoCome rendere la dimensione del testo di tablayout uguale?

<!-- Change tab text appearance --> 
    <style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab"> 
     <item name="textAllCaps">false</item> 
     <item name="android:textAppearance">@style/CustomTabWidgetText</item> 
    </style> 

    <style name="CustomTabWidgetText" 
     parent="@android:style/TextAppearance.Widget.TabWidget"> 
     <item name="android:textSize">16sp</item> 
    </style> 

poi ho impostato al mio tablayout

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".activity.HomeActivity" 
    tools:showIn="@layout/app_bar_main"> 


    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     app:titleTextColor="#ffffff" 
     /> 


    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/toolbar" 
     android:background="?attr/colorPrimary" 
     app:tabSelectedTextColor="#ffffff" 
     app:tabTextAppearance="@style/MyCustomTextAppearance" 
     app:tabTextColor="#ffffff" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/tab_layout" /> 

</RelativeLayout> 

Ecco il risultato:

enter image description here

Come puoi vedere, il testo "D-day complete" è più piccolo di altri. Ho chiesto di rendere le sue dimensioni uguali agli altri, ma non so come. Per favore aiutami, grazie.

+0

Si può sicuramente trovare la risposta qui ... http: // stackoverflow.com/questions/19442084/change-the-text-size-in-tab-in-android –

+1

Il testo non sarebbe adatto se fosse più grande. Lo risolverebbe per impostare tabMayout di tabLayout su 'app: tabMode =" scrollable "'? Allora forse l'intero testo si adatterebbe e avresti le stesse dimensioni del testo. Questo va nel tuo xml, nel tag 'TabLayout'. – Vucko

+0

o se si dispone di un numero noto di schede, si consiglia di mantenere tabMode fisso e ridurre la dimensione del testo su schermi di larghezza ridotta – hmac

risposta

15

Si può cercare di impostare imbottitura in TabLayout (app: tabPaddingStart = "- 1DP", app: tabPaddingEnd = "- 1DP")

come

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/toolbar" 
     android:background="?attr/colorPrimary" 
     app:tabSelectedTextColor="#ffffff" 
     app:tabTextAppearance="@style/MyCustomTextAppearance" 
     app:tabTextColor="#ffffff" 
     app:tabPaddingStart="-1dp" 
     app:tabPaddingEnd="-1dp"/> 

Mi ha aiutato)

+0

In realtà questa è l'unica risposta che ha fatto il trucco ... grazie @ Serg0! –

+0

Non ho idea del perché funzioni, ma lo fa! Molte grazie! –

+0

@FelipeRibeiroR.Magalhaes Il motivo per cui il testo era più piccolo è che era troppo largo per la scheda, quindi la dimensione del carattere veniva automaticamente ridotta in modo che si adattasse. Rendendo più piccolo il riempimento orizzontale della scheda, il testo ha più spazio e pertanto può adattarsi alla dimensione del carattere normale. Ma questo dipende completamente da quanto tempo il tuo testo è. Un testo che non si adatta ancora, nonostante lo spazio extra sarà comunque ridotto. – Alix

1

Dopo aver provato qualcosa di simile e dopo aver letto il codice sorgente TabLayout, provo a sovrascrivere una dimensione nel mio file dimens.xml, in questo modo:

<dimen name="design_tab_text_size_2line" tools:override="true">48sp</dimen> 

e non dimenticare di aggiungere lo spazio dei nomi nella radice del file, in questo modo:

<resources xmlns:tools="http://schemas.android.com/tools"> 

e funziona per me.

Spero che aiuti!

EDIT:

Sembra che non funziona su tutte le situazioni (in realtà è supposto a lavorare quando il testo dispone di due linee o più), ma aiuta quando lo stile non funziona. Quindi quello che faccio è che io uso entrambe le tecniche (stile e dimensione superata).

+1

È strano che nessuno abbia messo in discussione questa risposta. Nel mio caso, solo questo ha funzionato quando ho scavalcato la dimensione design_tab_text_size_2line. Comunque grazie, @thenaoh. – Rizwan

7

Per this post, questo ha funzionato molto bene per me:

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="scrollable" 
     app:tabGravity="fill" 
     app:tabIndicatorHeight="5dp" 
    /> 

I tabMode e tabGravity attributi fatto il trucco. In questo modo le etichette abbracciano tutto il tempo necessario, essere e scorrere in questo modo:

enter image description here

+0

Questo è un lavoro per me, tks! – elirigobeli

0

Si tratta di opere per me:

app:tabMode="scrollable" 
app:tabGravity="fill" 
+2

Si prega di fornire alcune informazioni su come il codice sopra risponde alla domanda al fine di migliorare questa risposta. –

Problemi correlati