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>
我希望它会为你工作…..