也许不是什么大不了的事,但我无法让它发挥作用。我有一个标签导航,我将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。
答案 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