androiddevise的TabLayout选项卡的文字大小

我有困难改变devise库tablayout(android.support.design.widget.TabLayout)的选项卡的文本大小。

我设法通过在TabLayout中分配tabTextAppearance来改变它

app:tabTextAppearance="@style/MyTabLayoutTextAppearance" 

以下风格

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

但我有2个副作用:

1)我失去了所选标签的重音颜色

2)标签文本不再大写。

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

我有类似的问题和类似的解决scheme:

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> 

如果你不想把大写字符放在“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更改文本颜色,types面(字体样式)和文本大小。

试试这个….它为我工作….

在我的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" /> 

并在我的style.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> 

我希望它会为你工作…..