【问题标题】:android:textAllCaps=“false” not working for com.google.android.material.tabs.TabLayoutandroid:textAllCaps=“false” 不适用于 com.google.android.material.tabs.TabLayout
【发布时间】:2020-05-21 01:48:42
【问题描述】:

我在我的 com.google.android.material.tabs.TabItem 中设置了 android:textAllCaps="false" 认为它只显示全部大写的选项卡标题。

如何删除所有大写字母?

<com.google.android.material.tabs.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <com.google.android.material.tabs.TabItem
        android:id="@+id/TabWeekly"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="@string/Weekly"
        android:textAllCaps="false"
        android:theme="@style/CustomTextAppearanceTab" />

    <com.google.android.material.tabs.TabItem
        android:id="@+id/TabMonthly"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="@string/Monthly"
        android:textAllCaps="false"
        android:theme="@style/CustomTextAppearanceTab" />

</com.google.android.material.tabs.TabLayout>

即使我已经为它设置了样式

<style name="CustomTextAppearanceTab" parent="TextAppearance.Design.Tab">
       <item name="textAllCaps">false</item>
       <item name="android:textAllCaps">false</item>
</style>

但它不起作用

【问题讨论】:

    标签: android xml material-design android-tablayout


    【解决方案1】:

    自定义样式

      <style name="customTabLayout" parent="Widget.Design.TabLayout">
        <item name="tabTextAppearance">@style/TabTextAppearance</item>
    </style>
    
    <style name="TabTextAppearance" parent="@android:style/TextAppearance.Widget.TabWidget">
        <item name="android:textAllCaps">false</item>
    </style>
    

    标签布局xml代码

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tab"
        style="@style/customTabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    

    【讨论】:

    • 非常感谢,我将 true 更改为 false 。它起作用了。谢谢非常感谢您的回复
    • 父样式错误。您应该将Widget.MaterialComponents.TabLayout 用于选项卡,将TextAppearance.MaterialComponents.Button 用于tabTextAppearance
    【解决方案2】:

    您可以利用TabLayout 使用与Button 相同的文本外观这一事实。

    首先,添加一个新的文本外观:

    <style name="TextAppearance.MyApplication.Button" parent="TextAppearance.MaterialComponents.Button">
        <item name="android:textAllCaps">false</item>
    </style>
    

    其次,将其作为textAppearanceButton 应用到应用程序主题中:

    <item name="textAppearanceButton">@style/TextAppearance.MyApplication.Button</item>
    

    当然,除非您想将 textAllCaps 保留为 Button,否则此解决方案有效。

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 2014-02-26
      • 2019-01-25
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      相关资源
      最近更新 更多