我需要开发一个可以动态更改操作栏标题样式的应用程序。
In 尝试通过以下方式访问操作栏标题来实现此目的:
(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 不是 Action Bar 标题。