J'ai eu le même problème et j'ai vérifié le style TabLayout, et j'ai trouvé que son style par défaut est celui Widget.Design.TabLayout
qui a différentes implémentations (normal, paysage et sw600dp).
Celui dont nous avons besoin est celui pour les tablettes (sw600dp) qui a l'implémentation suivante:
<style name="Widget.Design.TabLayout" parent="Base.Widget.Design.TabLayout">
<item name="tabGravity">center</item>
<item name="tabMode">fixed</item>
</style>
A partir de ce style, nous utiliserons " tabGravity " (dont les valeurs possibles sont "center" ou "fill") en utilisant la valeur "fill".
Mais nous devons aller plus loin, puis nous voyons que celle-ci s'étend, à partir de Base.Widget.Design.TabLayout
laquelle la mise en œuvre est:
<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
<item name="tabMaxWidth">@dimen/tab_max_width</item>
<item name="tabIndicatorColor">?attr/colorAccent</item>
<item name="tabIndicatorHeight">2dp</item>
<item name="tabPaddingStart">12dp</item>
<item name="tabPaddingEnd">12dp</item>
<item name="tabBackground">?attr/selectableItemBackground</item>
<item name="tabTextAppearance">@style/TextAppearance.Design.Tab</item>
<item name="tabSelectedTextColor">?android:textColorPrimary</item>
</style>
Donc, à partir de ce style, nous devrons remplacer " tabMaxWidth ". Dans mon cas, je l'ai réglé sur 0dp
, il n'a donc pas de limite.
Et mon style ressemblait à ceci:
<style name="MyTabLayout" parent="Widget.Design.TabLayout">
<item name="tabGravity">fill</item>
<item name="tabMaxWidth">0dp</item>
</style>
Et puis la barre d'onglets remplira tout l'écran d'un côté à l'autre.