我需要開發一個應用程序,可以動態更改動作欄標題樣式。定位後無法編輯動作欄標題
在試圖通過下列方式訪問操作欄標題來實現這一目標:
(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不是操作欄標題。
考慮也加入用於修改TextView的代碼... – Kris 2014-09-03 15:37:08