Размер текста в дизайне Android TabLayout

У меня возникают трудности с изменением размера текста вкладок библиотеки дизайна tablayout (android.support.design.widget.TabLayout).

Мне удалось изменить его, назначив tabTextAppearance в TabLayout

app:tabTextAppearance="@style/MyTabLayoutTextAppearance" 

Следующий стиль

 <style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"> <item name="android:textSize">14sp</item> </style> 

Но у меня есть 2 побочных эффекта:

1) Я потерял цвет акцента выбранной вкладки

2) Текст табуляции не заглавный.

Solutions Collecting From Web of "Размер текста в дизайне Android TabLayout"

 <style name="MineCustomTabText" parent="TextAppearance.Design.Tab"> <item name="android:textSize">16sp</item> </style> 

Использовать в TabLayout как это

 <android.support.design.widget.TabLayout app:tabTextAppearance="@style/MineCustomTabText" ... /> 

Продолжайте использовать tabTextAppearance, как и вы, но

1) исправить эффект большой буквы добавить textAllCap в вашем стиле:

 <style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"> <item name="android:textSize">14sp</item> <item name="android:textAllCaps">true</item> </style> 

2), чтобы исправить выбранный эффект цвета вкладки, добавьте в TabLayout xml следующие атрибуты библиотеки:

 app:tabSelectedTextColor="@color/color1" app:tabTextColor="@color/color2" 

Надеюсь это поможет.

Работайте на api 22 и 23 Сделайте этот стиль:

 <style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout"> <item name="android:textSize">12sp</item> <item name="android:textAllCaps">true</item> </style> 

И примените его к вашему 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"/> 

У меня есть аналогичная проблема и аналогичное разрешение:

1) Размер

В xml у вас есть TabLayout,

  <android.support.design.widget.TabLayout ... app:tabTextAppearance="@style/CustomTextStyle" ... /> 

То в стиле,

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

Если вы не хотите, чтобы символы в верхнем регистре помещали false в «android: textAllCaps»,

2) Цвет текста выбранных или невыбранных вкладок,

 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)); } 

Затем в 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" /> 

 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); } } } } 

Этот код работает для меня с помощью tablayout. Он изменит размер шрифтов, а также изменит стиль шрифта.

Это также поможет вам, ребята, проверить эту ссылку

https://stackoverflow.com/a/43156384/5973946

Этот код работает для Tablayout, чтобы изменить цвет текста, тип лица (стиль шрифта), а также размер текста.

Попробуйте это … его работа для меня ….

В моем layout.xml у меня есть что-то вроде этого ….

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

И в моем стиле.xml у меня есть что-то вроде мира кода ….

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

Надеюсь, это сработает для вас …..