【问题标题】:ActionBarSherlock Change Tab Text Color on Orientation ChangeActionBarSherlock 在方向更改时更改选项卡文本颜色
【发布时间】:2013-03-01 04:07:39
【问题描述】:

我有一个使用 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 忽略了方向更改并且不再查找样式。有人知道吗?

【问题讨论】:

  • 确定一下,您已经在清单中应用了这个主题?
  • 是的,操作栏工作正常。只是这种风格在方向改变时不起作用。
  • 您在处理配置更改吗?
  • 我觉得换成横向模式后应该刷新一下UI!
  • @JakeWharton 不,我不处理配置更改。

标签: android actionbarsherlock


【解决方案1】:

听起来您的清单中有android:configChanges="keyboardHidden|orientation"(或类似的东西)。如果你删除它,那么它应该在旋转时改变颜色。它还会导致活动在旋转时重新加载,因此请确保您也适当地处理它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多