如何更改工具栏的文字大小?


92

我想更改中的文本大小Toolbar。因为在我的应用程序中,Toolbar横向和纵向模式下文本的大小均不同。

是否可以更改中的文本的文本大小Toolbar

Answers:


283

用途app:titleTextAppearance

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:id="@+id/toolbar"
    app:titleTextAppearance="@style/Toolbar.TitleText" />

并以自定义样式覆盖默认标题大小:

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">18sp</item>
</style>

结果:

屏幕截图


它有效,谢谢您的解决方案!节省了我很多时间!
hetsgandhi

23

例如您的工具栏

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:gravity="center"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

您可以简单地添加此视图

    app:titleTextAppearance="@style/yourstyle"

style.xml

  <style name="yourstyle" parent="@style/Base.TextAppearance.AppCompat.Title">
    <item name="android:textSize">20sp</item>
</style>

像那样...


由于某种原因android:gravity="center",没有为我设置居中对齐。...:-/
Mobigital '17

5

您可以TextView在工具栏中添加,并根据需要进行自定义:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textSize="25sp"/>
</android.support.v7.widget.Toolbar>

4
这似乎是适合支持API <21的应用程序的答案。titleTextAppearance是一个不错的解决方案,但仅适用于API 21及更高版本。但是,使用此解决方案需要处理一些复杂问题。如果您使用的是SearchView,则视图的扩展版本将一直延伸到最左端。相反,它只会延伸到新添加的标题文本视图的右边缘。因此,您将不得不在此处进行一些自定义,但这又是一个特定的情况。一般而言,这对于任何平台版本都是一个很好的解决方案。
Deepak GM

3

onCreate以下尝试:

android.support.v7.app.ActionBar actionbar = getSupportActionBar();
TextView textview = new TextView(MainActivity.this);
RelativeLayout.LayoutParams layoutparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

textview.setLayoutParams(layoutparams);
textview.setText(getString(R.string.your_string));
textview.setTextColor(Color.WHITE);
textview.setTextSize(18);

actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(textview);

这取自Android-Examples.com


3

[Optional steps 1 & 2)

  1. 将字体文件放置在“ Project / app / src / main / assets / fonts /”文件夹中。

然后从字体文件中创建一个Typeface对象,如下所示:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. 现在,从现有工具栏(默认工具栏)获取子项(工具栏标题textview),并传递上面创建的字体对象。
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. 最后,更改工具栏标题文本视图的文本大小
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size

2
欢迎来到SO!请添加一些描述以支持您的答案。
Mahib

1
该答案来自SO的低质量帖子。...您能在答案中添加任何评论吗?解释您的逻辑,并对您的代码打算做什么做一些评论。这将对OP有所帮助,但也将作为将来用户的评论
Ram Ghadiyaram

如果您有导航图标,则应使用getChildAt(1):)
Gabor
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.