我使用ActionBarSherlock设置了ActionBar。当应用程序处于纵向和横向时,我需要使用不同的选项卡文本颜色集。当标签处于纵向模式时,文本应为浅灰色,如下所示:
当方向为横向时,标签文本颜色应为白色(#FFFFFF)。但是,当方向转换为横向时,文本如下所示:
同样,我需要在横向,白色(#FFFFFF)时使用标签的文本颜色。我正在使用Light.DarkActionBar主题并通过样式设置文本颜色,如下所示。
在 / values 文件夹
中<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Example.Theme.Default" parent="@style/Theme.Sherlock.Light.DarkActionBar">
<item name="actionBarTabTextStyle">@style/Example.ActionBar.TabTextStyle</item>
<item name="android:actionBarTabTextStyle">@style/Example.ActionBar.TabTextStyle</item>
</style>
<style name="Example.ActionBar.TabTextStyle" parent="Widget.Sherlock.ActionBar.TabText">
<item name="android:textColor">#585858</item>
</style>
</resources>
当我旋转设备时,文本会保持黑暗,这是预期的。我决定用资源修饰符解决这个问题,然后我在values-land文件夹下创建了一个新的资源文件夹,其中-land修饰符在横向文件中具有新的选项卡文本样式,如下所示。
在 / values-land 文件夹
中<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Example.ActionBar.TabTextStyle" parent="Widget.Sherlock.ActionBar.TabText">
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
此时我希望在旋转设备时文本会改变颜色。 这不会发生。但是......如果我回到Android主屏幕将设备放入横向并且然后启动应用程序,则使用正确的资源样式(标签文本为白色)。如果我将它旋转回肖像,它会保持白色。我希望它能回到更深的颜色(#585858)
如何在屏幕方向的标签上更改文字颜色?似乎Android或ActionBar忽略了方向更改而没有再查找样式。任何人都有任何想法?
答案 0 :(得分:1)
听起来你的清单中有android:configChanges="keyboardHidden|orientation"
(或类似的东西)。如果你删除它,那么它应该在旋转时改变颜色。它还会导致活动在旋转时重新加载,因此请确保您也适当地处理它。