1

アクション バーのタイトル スタイルを動的に変更できるアプリを開発する必要があります。

次の方法でアクション バーのタイトルにアクセスして、これを実現しようとしました。

(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はアクションバーのタイトルではありません。

4

1 に答える 1