アクション バーのタイトル スタイルを動的に変更できるアプリを開発する必要があります。
次の方法でアクション バーのタイトルにアクセスして、これを実現しようとしました。
(TextView) findViewById(
Resources.getSystem().getIdentifier(
"action_bar_title",
"id",
"android"
)
);
次に、通常の TextView と同じようにスタイルを編集します。
これは、携帯電話の向きが変わる前に問題なく動作するようです。
ただし、向きが変更された後も、上記のコードで TextView を取得できます (つまり、 null を返さない) が、textview への変更は反映されなくなります。
誰かが理由を知っているでしょうか?
================================================== ============
TextView を変更するために使用したコード:
@Override
public void onConfigurationChanged( Configuration newConfig )
{
super.onConfigurationChanged( newConfig );
int titleId = Resources.getSystem().getIdentifier( "action_bar_title", "id", "android" );
TextView title = (TextView) activity.findViewById( titleId );
title.setTextColor( Color.parseColor("#ff0000") );
title.setBackgroundColor( Color.parseColor("#00ff00") );
title.setText( ""+ new Random().nextInt(9999) );
}
向きが変更された後、onConfigurationChanged メソッドがトリガーされます。ただし、アクション バーのタイトル TextView は反映されなくなりました。
titleView.getText().toString() を使用して、以前に割り当てた正しいテキストを取得することもできます。
ただし、アクション バーのタイトルには目に見える変更はありません。私が抽出したTextViewはアクションバーのタイトルではありません。