Размер текста в дизайне 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) Текст вкладки уже не заглавный.
Ответы
Ответ 1
<style name="MineCustomTabText" parent="TextAppearance.Design.Tab">
<item name="android:textSize">16sp</item>
</style>
В TabLayout
используется
<android.support.design.widget.TabLayout
app:tabTextAppearance="@style/MineCustomTabText"
...
/>
Ответ 2
Продолжайте использовать 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"
Надеюсь, что это поможет.
Ответ 3
Работа над api 22 и 23
Сделайте этот стиль:
<style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout">
<item name="android:textSize">12sp</item>
<item name="android:textAllCaps">true</item>
</style>
И примените его к вашему табуляции:
<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"/>
Ответ 4
У меня есть аналогичная проблема и аналогичное разрешение:
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" />
Ответ 5
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.
Он изменит размер шрифтов, а также изменит стиль шрифта.
Это также поможет вам, ребята, проверить эту ссылку.
fooobar.com/questions/125237/...
Этот код работает, чтобы Tablayout менял цвет текста, тип лица (стиль шрифта), а также размер текста.
Ответ 6
попробуйте это.... его работа для меня....
в моем 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>
Я надеюсь, что это сработает для вас.....