android设计TabLayout标签的文字大小

时间:2015-07-17 08:11:50

标签: android text-size android-tablayout

我无法更改设计库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>

但我有两个副作用:

1)我丢失了所选标签的强调色

2)标签文本不再大写。

10 个答案:

答案 0 :(得分:148)

<style name="MineCustomTabText" parent="TextAppearance.Design.Tab">
    <item name="android:textSize">16sp</item>
</style>

使用TabLayout就像这样

<android.support.design.widget.TabLayout
            app:tabTextAppearance="@style/MineCustomTabText"
            ...
            />

答案 1 :(得分:39)

继续使用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" 

希望这有帮助。

答案 2 :(得分:21)

致力于api 22&amp; 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"/>

答案 3 :(得分:13)

我有类似的问题和类似的解决方案:

1)尺寸

在xml中你有TabLayout,

x:Key="LinkButton"

然后是风格,

        <android.support.design.widget.TabLayout
            ...
            app:tabTextAppearance="@style/CustomTextStyle"
            ...
        />

如果你不希望大写的字符在&#34; android:textAllCaps&#34;

中输入false

2)选定或未选定标签的文字颜色,

        <style name="CustomTextStyle" parent="@android:style/TextAppearance.Widget.TabWidget">
           <item name="android:textSize">16sp</item>
           <item name="android:textAllCaps">true</item>
        </style>

然后在res / color / tab_selector.xml

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));
    }

答案 4 :(得分:10)

尝试这个....它为我工作....

在我的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>

我希望它对你有用.....

答案 5 :(得分:8)

2

此代码适用于我使用tablayout。 它会改变字体的大小,也会改变字体样式。

这也有助于你们查看此链接

https://stackoverflow.com/a/43156384/5973946

此代码适用于Tablayout更改文本颜色,类型面(字体样式)以及文本大小。

答案 6 :(得分:8)

执行以下操作。

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

答案 7 :(得分:0)

我正在使用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" />

答案 8 :(得分:0)

XML 文件的值

<style name="tab">
    <item name="android:textSize">@dimen/_10ssp</item>
    <item name="android:textColor">#FFFFFF</item>
</style>

标签布局

<com.google.android.material.tabs.TabLayout
    android:layout_width="match_parent"
    android:layout_height="@dimen/_27sdp"
    android:layout_marginLeft="@dimen/_10sdp"
    android:layout_marginRight="@dimen/_10sdp"
    app:layout_constraintEnd_toEndOf="parent"
    app:tabTextAppearance="@style/tab"
    app:tabGravity="fill"
    android:layout_marginTop="@dimen/_10sdp"
    app:layout_constraintStart_toStartOf="parent"
   >

    <com.google.android.material.tabs.TabItem
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TAB 1"
        android:scrollbarSize="@dimen/_4sdp"
        />

    <com.google.android.material.tabs.TabItem
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scrollbarSize="@dimen/_6sdp"
        android:text="TAB 2" />

    <com.google.android.material.tabs.TabItem
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scrollbarSize="@dimen/_4sdp"
        android:text="TAB 3" />
</com.google.android.material.tabs.TabLayout>

答案 9 :(得分:0)

template <std::size_t userInput>
void Test ()
 {
   using typeArray = std::tuple<__int32, __int16, __int8>;

   CallMe<std::tuple_element_t<userInput, typeArray>>(paramToUse);
 }
<块引用>

这是我的解决方案

相关问题