android:textAllCaps ="false"不适用于TabLayout设计支持

dhu*_*981 69 android androiddesignsupport android-tablayout

我已经设定android:textAllCaps="false"android.support.design.widget.TabLayout它只显示全部大写的标题标题.

如何删除所有大写字母?

Par*_*ani 155

设计图书馆更新23.2.0+

原始答案不适用于设计库23.2.0或更高版本.感谢@ fahmad6在评论中指出,如果有人错过了评论,我会把它放在这里.您需要同时设置textAllCapsandroid:textAllCapsfalse禁用所有资本设置.

<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
      <item name="textAllCaps">false</item>
      <item name="android:textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

原始答案

默认情况下,TabLayout创建的选项卡将textAllCaps属性设置为true,您必须定义使此标志为false的样式.

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
      <item name="tabTextAppearance">@style/MyCustomTextAppearance</item>
</style>

<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
      <item name="textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • @Moinkhan它正在工作.使用这种方式style ="@ style/MyCustomTabLayout" (5认同)
  • 你的答案看起来是正确的,但我不知道为什么,它对我不起作用 (4认同)
  • 更新:它应该用作 `app:tabTextAppearance="@style/MyCustomTextAppearance"` 然后它就可以工作 (4认同)
  • 有趣的是,由于我无法解释的原因,我不得不明确地添加_both_`android:textAllCaps`和`textAllCaps`并将它们设置为false以使我的文本显示为所需(即"Local"而不是"LOCAL").单独尝试并没有成功. (3认同)
  • 这里的重要部分是答案使用的是textAllCaps,而问题使用的是android:textAllCaps。 (2认同)

Ord*_*don 60

@Paresh Mayani答案是正确的,但您只能创建标签样式

<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
  <item name="textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

并使用它

<android.support.design.widget.TabLayout
    app:tabTextAppearance="@style/MyCustomTextAppearance"
    .../>
Run Code Online (Sandbox Code Playgroud)

  • @Muhammad Umair Shafique 的解决方案正在发挥作用。我们必须使用“app:tabTextAppearance”属性而不是“style”属性。 (2认同)

sus*_*i99 31

/sf/answers/2427476481/

<android.support.design.widget.TabLayout
    app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
/>
Run Code Online (Sandbox Code Playgroud)

  • 确认,此页面上没有其他获得更多投票支持的答案对我有用。我的项目的minSdkVersion = 16,targetSdkVersion = 26,设计库版本26.0.0-alpha1,我使用的是Android.support.design.widget.TabLayout。 (2认同)

you*_*sef 23

使用此属性app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" 它将工作.

  <android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    app:tabGravity="fill"
    app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
    app:tabIndicatorColor="@color/colorPrimary"
    app:tabMode="fixed"
    app:tabPaddingStart="0dp" />
Run Code Online (Sandbox Code Playgroud)


Evr*_*urk 7

对于那些无法工作的人

当您具有单行制表符文本时,定义样式可以很好地工作。如果仔细查看TabLayout,您会发现当选项卡有多行时,它正在使用字段design_tab_text_size_2line

我发现影响此字段的唯一方法是在dimen文件中覆盖它。

因此,将其放在您的values / dimens.xml中

<dimen name="design_tab_text_size_2line" tools:override="true">10sp</dimen>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。

  • 很好找到@EvrenOzturk。为您竖起大拇指。 (2认同)

小智 7

这对我来说只需一行

 <android.support.design.widget.TabLayout
    app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"/>
Run Code Online (Sandbox Code Playgroud)


小智 5

这是简单的解决方案....享受

 for (int tabIndex = 0; tabIndex <tabLayout.getTabCount() ; tabIndex++) {
        TextView tabTextView = (TextView)(((LinearLayout)((LinearLayout)tabLayout.getChildAt(0)).getChildAt(tabIndex)).getChildAt(1));
        tabTextView.setAllCaps(false);
    }
Run Code Online (Sandbox Code Playgroud)


Coo*_*ind 5

就我而言,有两种变体可以工作:

1)博格丹(susemi99):

<android.support.design.widget.TabLayout
    app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
/>
Run Code Online (Sandbox Code Playgroud)

2)Paresh Mayani发表。我想有android:textAllCaps="false"android:textSize="15sp"同时,让他的老方法工作。

styles.xml写入(母体可能会发生变化,例如, “@android:风格/ TextAppearance.Widget.TabWidget”, “TextAppearance.Design.Tab”):

<style name="TabLayout" parent="Widget.Design.TabLayout">
    <item name="tabIndicatorColor">@color/color_blue</item>
    <item name="tabSelectedTextColor">@color/color_blue</item>
    <item name="tabTextColor">@color/black</item>
    <item name="tabTextAppearance">@style/TabLayoutTextAppearance</item>
</style>

<style name="TabLayoutTextAppearance" parent="TextAppearance.Design.Tab">
    <item name="android:textSize">15sp</item>
    <item name="textAllCaps">false</item>
    <item name="android:textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在布局中应用此样式:

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/TabLayout"
    />
Run Code Online (Sandbox Code Playgroud)