デザインライブラリ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>
そして、それをタブレイアウトに適用します:
<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>
大文字の文字が必要ない場合は、「Android:textAllCaps」にfalseを入力します
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" />
これを試してください....それは私のために働く....
私の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>
私はそれがあなたのために働くことを願っています.....
次のようにしてください。
1。スタイルをXMLに追加
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.Design.Tab">
<item name="Android:textSize">14sp</item>
</style>
2。スタイルの適用
TabLayoutを含むレイアウトを見つけて、スタイルを追加します。追加された行は太字です。
<Android.support.design.widget.TabLayout
Android:id="@+id/tabs"
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
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がテキストの色、書体(フォントスタイル)、およびテキストサイズを変更する場合に機能します。
私はAndroid Pieを使用していましたが、何も機能していないようでしたので、app:tabTextAppearance属性で遊んでみました。私はそれが完璧な答えではないことを知っていますが、誰かを助けるかもしれません。
<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" />