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:
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.
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é)
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:
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).
Ceci fonctionne pour moi:
app:tabMode="scrollable"
app:tabGravity="fill"