web-dev-qa-db-fra.com

Comment faire la taille du texte de tablayout égale?

Voici ce que j'ai fait: j'ai créé un style pour le texte

<!-- 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>

alors je le mets à mon 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>

Voici le résultat:

 enter image description here

Comme vous pouvez le constater, le texte "Jour complet" est plus petit que les autres. J'ai demandé à faire sa taille égale à d'autres mais je ne sais pas comment. S'il vous plaît aidez-moi, merci.

9
Bụng Bự

Vous pouvez essayer de définir un remplissage dans TabLayout (App: tabPaddingStart = "- 1dp", app: tabPaddingEnd = "- 1dp")

comme

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

Ça m'a aidé)

33

Per ce post , cela a très bien fonctionné pour moi:

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

Les attributs tabMode et tabGravity ont fait l'affaire. Cela permet aux étiquettes de s'étendre aussi longtemps que nécessaire et de défiler comme suit: 

 enter image description here

9
etherton

Après avoir rencontré quelque chose de similaire et après avoir lu le code source de TabLayout, j'essaie de remplacer une dimension, dans mon fichier dimens.xml, comme ceci:

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

et n'oubliez pas d'ajouter l'espace de noms à la racine de votre fichier, comme ceci:

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

et cela fonctionne pour moi.

J'espère que ça aide!

MODIFIER :

Il semble que cela ne fonctionne pas dans toutes les situations (cela est supposé fonctionner lorsque votre texte comporte deux lignes ou plus), mais cela aide lorsque le style ne fonctionne pas. Donc, ce que je fais est que j'utilise les deux techniques (style et dimension surchargée).

1
thenaoh

Ceci fonctionne pour moi:

app:tabMode="scrollable"
app:tabGravity="fill"
0
Rodrigo Gielow