Mam trudności ze zmianą rozmiaru tekstu w zakładkach biblioteki projektów tablayout (android.support.design.widget.TabLayout).
Udało mi się to zmienić, przypisując tabTextAppearance w TabLayout
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
następujący styl
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<item name="android:textSize">14sp</item>
</style>
ale mam 2 efekty uboczne:
1) Zgubiłem kolor akcentu wybranej zakładki
2) Tekst tabulatora nie jest już pisany wielkimi literami.
Kontynuuj używanie tabTextAppearance, tak jak wcześniej, ale
1) aby naprawić efekt uboczny dużej litery, dodaj textAllCap w swoim stylu:
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"> <item name="android:textSize">14sp</item> <item name="android:textAllCaps">true</item> </style>
2) Aby naprawić efekt uboczny koloru wybranej zakładki, dodaj w TabLayout xml następujące atrybuty biblioteki:
app:tabSelectedTextColor="@color/color1" app:tabTextColor="@color/color2"
Mam nadzieję że to pomoże.
źródło
Pracuj nad interfejsami API 22 i 23 Utwórz ten styl:
<style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout"> <item name="android:textSize">12sp</item> <item name="android:textAllCaps">true</item> </style>
I zastosuj to do swojego układu:
<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"/>
źródło
Wykonaj następujące czynności.
1. Dodaj Styl do XML
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.Design.Tab"> <item name="android:textSize">14sp</item> </style>
2. Zastosuj styl
Znajdź układ zawierający TabLayout i dodaj styl. Dodana linia jest pogrubiona.
<android.support.design.widget.TabLayout android:id="@+id/tabs" app:tabTextAppearance="@style/MyTabLayoutTextAppearance" android:layout_width="match_parent" android:layout_height="wrap_content" />
źródło
Wypróbuj wycięte, które jest wymienione poniżej, działa również dla mnie.
W moim układzie, w
xml
którym mam mójTabLayout
, dodałem styl doTabLayout
poniższego:<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" />
aw moim
style.xml
zdefiniowałem styl, który jest używany w moim układzie XML, sprawdź kod stylów dodanych poniżej:<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>
Mam nadzieję, że to zadziała .....
źródło
Mam podobny problem i podobną rozdzielczość:
1) Rozmiar
w xml masz TabLayout,
<android.support.design.widget.TabLayout ... app:tabTextAppearance="@style/CustomTextStyle" ... />
potem w dobrym stylu,
<style name="CustomTextStyle" parent="@android:style/TextAppearance.Widget.TabWidget"> <item name="android:textSize">16sp</item> <item name="android:textAllCaps">true</item> </style>
Jeśli nie chcesz, aby znaki pisane wielkimi literami wstawiały wartość false w „android: textAllCaps”
2) Kolor tekstu zaznaczonych lub niezaznaczonych zakładek,
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)); }
następnie w 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" />
źródło
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); } } } }
Ten kod działa dla mnie przy użyciu tablayout. Zmieni rozmiar czcionek, a także zmieni styl czcionki.
Pomoże wam to również w sprawdzeniu tego linku
https://stackoverflow.com/a/43156384/5973946
Ten kod działa dla zmiany koloru tekstu w Tablayout, kroju czcionki (stylu czcionki), a także rozmiaru tekstu.
źródło
Używałem Androida Pie i nic nie działało, więc bawiłem się atrybutem app: tabTextAppearance. Wiem, że to nie jest doskonała odpowiedź, ale może komuś pomóc.
<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" />
źródło