当前位置: 首页 > 知识库问答 >
问题:

如何在工具栏中为标题设置自定义字体

越嘉树
2023-03-14
toolbar = (Toolbar) findViewById(com.sports.unity.R.id.tool_bar);
setSupportActionBar(toolbar);
setTitle("hello");

我想为标题“你好”中的文本设置一个自定义字体。怎么做?

共有1个答案

许亦
2023-03-14

更新2018(kotlin版本)

fun Toolbar.changeToolbarFont(){
    for (i in 0 until childCount) {
        val view = getChildAt(i)
        if (view is TextView && view.text == title) {
            view.typeface = Typeface.createFromAsset(view.context.assets, "fonts/customFont")
            break
        }
    }
}

并像toolbar.changeToolbarfont()那样使用它

旧邮局

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_top"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/action_bar_bkgnd"
    app:theme="@style/ToolBarTheme" >


     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Toolbar Title"
        android:layout_gravity="center"
        android:id="@+id/toolbar_title" />


    </android.support.v7.widget.Toolbar>
Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);
Typeface khandBold = Typeface.createFromAsset(BalrogApplication.getApplication().getAssets(), "fonts/Khand-bold.ttf");

mTitle.setTypeface(khandBold);
public static void changeToolbarFont(Toolbar toolbar, Activity context) {
    for (int i = 0; i < toolbar.getChildCount(); i++) {
        View view = toolbar.getChildAt(i);
        if (view instanceof TextView) {
            TextView tv = (TextView) view;
            if (tv.getText().equals(toolbar.getTitle())) {
                applyFont(tv, context);
                break;
            }
        }
    }
}

public static void applyFont(TextView tv, Activity context) {
    tv.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/customFont"));
}
changeToolbarFont(findViewById(R.id.app_bar), this);
 类似资料:
  • 问题内容: 我正在这样做: 我想为标题“ hello”中的文本设置自定义字体。怎么做? 问题答案: Update 2018(kotlin版本) 像那样使用 旧帖子 要在工具栏中使用自定义标题,您需要做的就是记住,工具栏只是一个精美的ViewGroup,因此您可以像这样添加自定义标题: 这意味着您可以根据需要设置TextView的样式,因为它只是常规的TextView。因此,在您的活动中,您可以像这

  • 问题内容: 我正在尝试找出对工具栏标题使用自定义字体的正确方法,并将其放在工具栏的中心(客户要求)。 此刻,我使用的是旧的ActionBar,并且将标题设置为空值,并使用setCustomView自定义字体TextView并使用ActionBar.LayoutParams将其居中。 有更好的方法吗?使用新的工具栏作为我的ActionBar。 问题答案: 要在您的Toolbar所有内容中使用自定义标

  • 问题内容: 如何(如果可能)如何在Assets文件夹中的字体中设置ActionBar标题文本(仅-不是标签文本)中的自定义字体?我不想使用android:logo选项。 问题答案: 我同意不完全支持此操作,但这就是我所做的。您可以将自定义视图用于操作栏(它将显示在图标和操作项之间)。我正在使用自定义视图,并且已禁用本机标题。我所有的活动都继承自一个活动,该活动在onCreate中包含以下代码: 我

  • 我一直在使用AppCompatv7 lib的最新工具栏。我在工具栏视图组中放置了一个文本视图,我想从我的活动片段中为这个文本视图设置一个标题。如果是自定义操作栏((ActionBarActivity)getActivity)。setcustomView(…)会完成任务的。但由于使用了这个工具栏,我无法使用它。此外,我在BaseActivity中实现了一个由所有活动继承的方法。此BaseActivi

  • 问题内容: 我希望在Java Swing桌面应用程序中有一个自定义的标题栏。最好的方法是什么?通过在JFrame的构造函数中使用以下代码,可以使用“标题栏”: 但是,如何自定义呢?是否可以覆盖任何 UI委托 ,还是必须从头开始实现自己的标题栏? 我想要类似Lawson Smart Office的东西: 问题答案: 您可以在Substance外观(镜像源)中看到一个示例。在代码中搜索Substanc