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で見ることができます。でも、テーマは決まっています。タブのフォントの色は常に黒です。プログラムでタブのテキストの色を変更できるように、誰でもsetThemeを手伝ってもらえますか

4

1 に答える 1

0

もう 1 つの方法は、(アクティビティの) 構成の変更をオーバーライドせず、次のように Fragment の作成時に向きを確認することです。

  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 に答える