Android标签标题小写

时间:2018-03-10 19:26:05

标签: android tabs lowercase

也许不是什么大不了的事,但我无法让它发挥作用。我有一个标签导航,我将strings.xml中的标题标题作为数组:

 String[] tbTitles= resources.getStringArray(R.array.tabname);

    for (int i = 0; i < mAppSectionsPagerAdapter.getCount(); i++) {
        actionBar.addTab(
                actionBar.newTab()
                        .setText(tbTitles[i])
                        .setTabListener(this));
    }
}

标签名定义为小写(或更好地说是大写 - 示例)。它运行正常,但问题出在较旧的API上,其中每个标签都是大写的。

我在这个论坛上找到了一些解决方案,但没有找到任何解决方案。

我试着把它放在我的for循环中:

 tbTitles[i] = tbTitles[i].toLowerCase();

我还尝试将它放在styles.xml中的tablayout样式:

 <item name="textAllCaps">false</item>

旧版机器人的文字总是大写。当然它适用于较新的API。

我想要的只是将标题资本化为较旧的API。

3 个答案:

答案 0 :(得分:1)

Android 4.0中标签视图的默认主题(Holo主题)有android:textAllCaps set to true.所以你不能不重写tablayout样式。如果你没有它,只需添加它,因为它与viewpager一起使用

<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
  <item name="textAllCaps">false</item>
</style>

使用

实现它
<android.support.design.widget.TabLayout
    app:tabTextAppearance="@style/MyCustomTextAppearance"
    .../>

答案 1 :(得分:0)

如果您将以下行添加到TabLayout,它应该有效:

app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"

答案 2 :(得分:0)

由于没有解决方案对我有用,最后我解决了这个问题:

在我的styles.xml中<style name="Base.Widget.Design.TabLayout" parent="@android:style/Theme.Holo">

我只是把

 <item name="android:actionBarTabTextStyle">@style/My.TabText.Style</item>

然后在下面:

 <style name="My.TabText.Style" parent="@android:style/Widget.Holo.ActionBar.TabText">
    <item name="android:textAllCaps">false</item>
</style>

这是唯一对我有用的解决方案!

所以重点是添加android:actionBarTabTextStyle而不是tabTextAppearance