119

デザイン ライブラリ 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) タブのテキストは大文字ではなくなりました。

4

10 に答える 10

56

あなたがしたように 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" 

お役に立てれば。

于 2015-07-17T08:28:31.173 に答える
33

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"/>
于 2016-10-30T14:06:52.713 に答える
23

以下のようにしてください。

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" />
于 2018-08-01T07:34:33.853 に答える
16

私は同様の問題と同様の解決策を持っています:

1) サイズ

あなたがTabLayoutを持っているxmlで、

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

于 2016-01-22T12:24:33.353 に答える