我无法通过编程方式更改v11及更高版本的android操作栏标题颜色。我可以在xml中完成它,但需要在代码中动态更改它。我应该怎么做呢?提前致谢。如何更改代码中的操作栏标题颜色
回答
ActionBar
标题ID是隐藏的,或者换句话说,它是内部的,并且通常无法访问它。不过,您可以使用Resources.getIdentifier
然后View.findViewById
来引用它。
抓住ID为action_bar_title
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
现在,如果你使用Sherlock Actionbar您可以使用夏洛克 - 动作条-ID可以使用ID与TextView
TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);
支持的操作条(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;
广东话只是这样做:getSherlockActivity()getSupportActionBar()。的setTitle( “TITLE”); ?? – marchinram 2013-04-04 05:27:25
原因,你可以这样做,当你只是想更改标题。但这个问题即将改变标题颜色。 – salcosand 2013-04-12 11:08:30
因此,你需要得到ActionBar中TextView的,并到那里你需要TextView的标识。而且这个ID在Sherlock ActionBar和那个本质上是不同的。 – salcosand 2013-04-12 11:15:30
另一种方式是使用HTML
getSupportActionBar().setTitle((Html.fromHtml("<font color=\"#FF4444\">" + getString(R.string.some_string) + "</font>")));
这是我认为最符合防弹要求的答案。 – Ercan 2014-12-05 13:57:40
这仍然是我设置它的最可靠的方法。 – DarkWolffe 2015-04-08 20:26:42
您可以使用SpannableString和ForegroundColorSpan设置标题
Spannable text = new SpannableString(actionBar.getTitle());
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionBar.setTitle(text);
这应该是公认的解决方案,依靠内部API(action_bar_title id)是一个坏主意,因为它可能会在没有通知的情况下更改。 – fernandohur 2014-09-04 23:28:21
这是最好的答案。特别针对使用v7 appcompat库的KitKat action_bar_title id解决方案中的FAIL。使用这个答案! – Codeversed 2014-11-26 04:12:34
作品像一个魅力 – Dien 2016-02-14 04:41:22
的颜色如果使用v7 appcompat library(与R22进行测试),那么你可以调用setTitleTextColor()
对Toolbar
对象替换所有API级别的操作栏。例如:
Toolbar actionBarToolbar = (Toolbar)activity.findViewById(R.id.action_bar);
if (actionBarToolbar != null)
actionBarToolbar.setTitleTextColor(Color.RED);
- 1. 更改操作栏标题颜色
- 2. 如何在Xamarin中更改操作栏标题颜色android
- 3. 更改颜色标题栏
- 4. 更改Android中的操作栏颜色
- 5. 如何更改回窄和更改操作栏中的颜色
- 6. 更改操作栏标题的颜色Android
- 7. 更改WinForm中标题栏的颜色
- 8. 如何使用lwuit更改标题栏中的标题颜色?
- 9. 更改操作栏的颜色
- 10. 更改操作栏的背景颜色
- 11. Java android更改操作栏的颜色
- 12. 更改操作栏上TabView的颜色
- 13. Android - 更改操作栏标题文字颜色
- 14. 更改操作栏背景和标题颜色
- 15. 更改操作栏标题字体和颜色
- 16. Android操作栏标题 - 更改背景颜色
- 17. 更改操作栏菜单颜色
- 18. 更改Android操作栏文本颜色
- 19. Actionbarsherlock - 更改操作栏线条颜色
- 20. 更改Android操作栏字幕颜色
- 21. 如何更改动作栏标题的颜色?
- 22. 更改NSWindow标题栏的颜色
- 23. 如何更改PreferenceActivity中操作栏文本的颜色
- 24. 如何更改Android中的文本颜色操作栏
- 25. 如何更改Android中操作栏的背景颜色?
- 26. 如何更改操作栏中菜单的颜色?
- 27. 如何更改框架“JAVAFX”中的标题栏的颜色?
- 28. 更改WPF标题栏背景颜色
- 29. flexdashboard - 更改标题栏颜色
- 30. 如何更改jquery datepicker中的标题颜色栏?
它不适用于我的摩托剃刀。 – antonio081014 2012-10-29 22:06:38
它不适用于我:/ – Si8 2013-12-05 22:27:27
这个东西对我来说不起作用。为了确保在actionbar中没有静态标题,所以我在getIdentifier方法调用中使用了“action_bar_title”。 “id”和“android”也一样。我正在使用v7-appcompat库。 – MSIslam 2014-01-02 17:36:25