J'ai des difficultés à modifier la taille du texte des onglets de la bibliothèque de conception tablayout (Android.support.design.widget.TabLayout).
J'ai réussi à le changer en assignant tabTextAppearance dans TabLayout
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
le style suivant
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<item name="Android:textSize">14sp</item>
</style>
mais j'ai 2 effets secondaires:
1) J'ai perdu la couleur d'accentuation de l'onglet sélectionné
2) Le texte de l'onglet n'est plus en majuscule.
<style name="MineCustomTabText" parent="TextAppearance.Design.Tab">
<item name="Android:textSize">16sp</item>
</style>
L'utilisation est dans TabLayout
comme ceci
<Android.support.design.widget.TabLayout
app:tabTextAppearance="@style/MineCustomTabText"
...
/>
Continuez à utiliser tabTextAppearance comme vous le faisiez mais
1) Pour corriger l’effet secondaire en majuscule, ajoutez textAllCap dans votre style:
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<item name="Android:textSize">14sp</item>
<item name="Android:textAllCaps">true</item>
</style>
2) pour corriger l'effet secondaire de couleur de l'onglet sélectionné, ajoutez à TabLayout xml les attributs de bibliothèque suivants:
app:tabSelectedTextColor="@color/color1"
app:tabTextColor="@color/color2"
J'espère que cela t'aides.
Travaillez sur les api 22 et 23 Faites ce style:
<style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout">
<item name="Android:textSize">12sp</item>
<item name="Android:textAllCaps">true</item>
</style>
Et appliquez-le à votre tablayout:
<Android.support.design.widget.TabLayout
Android:id="@+id/contentTabs"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10dp"
Android:background="@drawable/list_gray_border"
app:tabTextAppearance="@style/TabLayoutStyle"
app:tabSelectedTextColor="@color/colorPrimaryDark"
app:tabTextColor="@color/colorGrey"
app:tabMode="fixed"
app:tabGravity="fill"/>
Faites comme suit.
1. Ajouter le style au XML
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.Design.Tab">
<item name="Android:textSize">14sp</item>
</style>
2. Appliquer le style
Recherchez la disposition contenant TabLayout et ajoutez le style. La ligne ajoutée est en gras.
<Android.support.design.widget.TabLayout
Android:id="@+id/tabs"
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
J'ai un problème similaire et une résolution similaire:
1) taille
dans le xml vous avez TabLayout,
<Android.support.design.widget.TabLayout
...
app:tabTextAppearance="@style/CustomTextStyle"
...
/>
puis avec style,
<style name="CustomTextStyle" parent="@Android:style/TextAppearance.Widget.TabWidget">
<item name="Android:textSize">16sp</item>
<item name="Android:textAllCaps">true</item>
</style>
Si vous ne voulez pas que les caractères en majuscules mettent false dans "Android: textAllCaps"
2) Couleur du texte des onglets sélectionnés ou non sélectionnés,
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
tabLayout.setTabTextColors(getResources().getColorStateList(R.color.tab_selector,null));
} else {
tabLayout.setTabTextColors(getResources().getColorStateList(R.color.tab_selector));
}
puis dans res/color/tab_selector.xml
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:color="@color/white" Android:state_selected="true" />
<item Android:color="@color/white" />
essayez ceci .... son travail pour moi ....
dans mon layout.xml j'ai utiliser quelque chose comme ça ....
<Android.support.design.widget.TabLayout
Android:id="@+id/tab_layout"
style="@style/MyCustomTabLayout"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMode="fixed" />
et dans mon style.xml, j’utilise quelque chose comme la paix du code ....
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
<item name="Android:background">YOUR BACKGROUND COLOR</item>
<item name="tabTextAppearance">@style/MyCustomTabText</item>
<item name="tabSelectedTextColor">SELECTED TAB TEXT COLOR</item>
<item name="tabIndicatorColor">SELECTED TAB INDICATOR COLOR</item>
</style>
<style name="MyCustomTabText" parent="TextAppearance.AppCompat.Button">
<item name="Android:textSize">YOUR TEXT SIZE</item>
<item name="Android:textStyle">bold</item>
<item name="Android:textColor">@Android:color/white</item>
</style>
J'espère que cela fonctionnera pour vous .....
TabLayout tab_layout = (TabLayout)findViewById(R.id.tab_Layout_);
private void changeTabsFont() {
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/"+ Constants.FontStyle);
ViewGroup vg = (ViewGroup) tab_layout.getChildAt(0);
int tabsCount = vg.getChildCount();
for (int j = 0; j < tabsCount; j++) {
ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
int tabChildsCount = vgTab.getChildCount();
for (int i = 0; i < tabChildsCount; i++) {
View tabViewChild = vgTab.getChildAt(i);
if (tabViewChild instanceof TextView) {
((TextView) tabViewChild).setTypeface(font);
((TextView) tabViewChild).setTextSize(15);
}
}
}
}
Ce code fonctionne pour moi en utilisant tablayout. Il va changer la taille des polices et changer le style de police.
Cela vous aidera également les gars s'il vous plaît vérifier ce lien
https://stackoverflow.com/a/43156384/5973946
Ce code fonctionne pour Tablayout changer la couleur du texte, le caractère (style de police) et la taille du texte.
J'utilisais Android Pie et rien ne semblait fonctionner. J'ai donc joué avec l'attribut app: tabTextAppearance. Je sais que ce n'est pas la réponse parfaite, mais pourrait aider quelqu'un.
<Android.support.design.widget.TabLayout
Android:id="@+id/tabs"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabTextAppearance="@style/TextAppearance.AppCompat.Caption" />