我想在android的工具栏中获取字幕的textview来改变它的字体。实际上我正在用标题来做这件事:
Field f = toolbar.getClass().getDeclaredField("mTitleTextView");
f.setAccessible(true);
titleTextView = (TextView) f.get(toolbar);
我尝试使用相同的代码,但尝试获取“mSubtitleTextView”,但这不是解决方案。
谢谢!
答案 0 :(得分:4)
您可以像这样获得字幕TextView:
View subTitleView = toolbar.getChildAt(1);
如果您没有向工具栏添加任何视图,则其默认结构为:
[0] - (TextView) title
[1] - (TextView) subtitle
[2] - (ActionMenuView) menu
希望它有所帮助!
答案 1 :(得分:1)
绝对不是最好的方式,但在紧要关头这将有效。您必须找到实现myTypefaceSpan
的方法;我正在使用Calligraphy所以它为我提供了很好的联系。
CalligraphyTypefaceSpan myTypefaceSpan = new CalligraphyTypefaceSpan(
TypefaceUtils.load(this.getAssets(), "fonts/custom_font.ttf"));
public static void setToolbarSubtitle(String subtitle, Context context) {
SpannableStringBuilder sBuilder = new SpannableStringBuilder();
sBuilder.append(subtitle);
sBuilder.setSpan(MainActivity.myTypefaceSpan, 0, sBuilder.length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
((MainActivity)context).getSupportActionBar().setSubtitle(sBuilder);
}