0

我在我的应用程序上使用带有标签的 actionbarsherlock。在选项卡上必须将文本颜色更改为黑色或白色。根据我的应用程序的方向。在风景上我必须换成白色。因为我的操作栏是黑色的。当我更改为纵向时,我必须设置为黑色,因为我的标签背景是白色的。但是您可以以编程方式使用来更改颜色。所以我用这个技巧来改变主题。

当我的清单上的方向更改时,我禁用了重新加载选项

android:configChanges="keyboardHidden|orientation|screenSize">

这工作上帝。现在我在我的片段上实现它:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);

    if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
    {
        getSherlockActivity().setTheme(android.R.style.Theme_Holo_Light);
        Log.e("Portai", "port");
    }
    else
    {
        getSherlockActivity().setTheme(android.R.style.Theme_Holo);
        Log.e("land", "alnd");
    }
}

我可以在 logcat 上看到日志。但是主题是确定的。标签字体颜色始终为黑色!谁能帮我设置主题,这样我就可以以编程方式更改选项卡上的文本颜色

4

1 回答 1

0

另一种方法是不覆盖配置更改(针对活动)并检查片段创建的方向,如下所示:

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d(this.getClass().getSimpleName(), "onCreate()");

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
      getActivity().setTheme(android.R.style.Theme_Holo_Light);
    } else {
      getActivity().setTheme(android.R.style.Theme_Holo);
    }
  }
于 2013-01-16T15:49:54.880 回答