jfo*_*ato 42 android android-actionbar
我无法以编程方式为v11及更高版本更改机器人动作栏标题颜色.我可以在xml中完成它,但需要在代码中动态更改它.我该怎么办呢?提前致谢.
adn*_*eal 81
该ActionBar标题ID是隐藏的,或者换句话说,它的内部和访问它不能被通常所做的.您可以通过引用它Resources.getIdentifier,然后View.findViewById虽然.
获取action_bar_title的ID
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
Run Code Online (Sandbox Code Playgroud)
现在你可以使用ID了 TextView
TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);
Run Code Online (Sandbox Code Playgroud)
小智 75
您可以使用SpannableString和ForegroundColorSpan来设置标题的颜色
Spannable text = new SpannableString(actionBar.getTitle());
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionBar.setTitle(text);
Run Code Online (Sandbox Code Playgroud)
Iva*_*anP 33
另一种方法是使用Html
getSupportActionBar().setTitle((Html.fromHtml("<font color=\"#FF4444\">" + getString(R.string.some_string) + "</font>")));
Run Code Online (Sandbox Code Playgroud)
mat*_*ash 15
如果使用v7 appcompat库(使用r22测试),则可以调用替换操作栏setTitleTextColor()的Toolbar对象以获取所有API级别.例如:
Toolbar actionBarToolbar = (Toolbar)activity.findViewById(R.id.action_bar);
if (actionBarToolbar != null)
actionBarToolbar.setTitleTextColor(Color.RED);
Run Code Online (Sandbox Code Playgroud)
如果您使用Sherlock Actionbar,您可以使用sherlock-actionbar-id获取支持的动作栏(Android 3.0以下)
int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if ( 0 == titleId )
titleId = com.actionbarsherlock.R.id.abs__action_bar_title;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43096 次 |
| 最近记录: |