【问题标题】:How to set custom font to android toolbar's subtitle?如何将自定义字体设置为 android 工具栏的字幕?
【发布时间】:2015-04-14 16:44:10
【问题描述】:

我想在 android 的工具栏中获取字幕的 textview 以更改它的字体。其实我是用标题做的,这样写的:

Field f = toolbar.getClass().getDeclaredField("mTitleTextView");
f.setAccessible(true);
titleTextView = (TextView) f.get(toolbar);

我尝试使用相同的代码,但尝试获取“mSubtitleTextView”,但这不是解决方案。

谢谢!!

【问题讨论】:

  • 用字体试试
  • 这就是我正在尝试的,但我需要文本视图
  • 标题在哪里,在操作栏中?
  • 我用上面的代码搞定了
  • 那么现在你想改变titleTextView的字体吗?

标签: android fonts toolbar subtitle


【解决方案1】:

你可以像这样获取字幕TextView:

View subTitleView = toolbar.getChildAt(1);

如果不给工具栏添加任何视图,他的默认结构是:

[0] - (TextView) title
[1] - (TextView) subtitle
[2] - (ActionMenuView) menu

希望对你有帮助!

【讨论】:

    【解决方案2】:

    绝对不是最好的方法,但在紧要关头这会奏效。不过,您必须想办法实现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);
    }
    

    【讨论】:

    • 这似乎不适用于标题,您是否也在使用反射?
    猜你喜欢
    • 2022-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2014-12-19
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多