Как изменить размер текста на панели инструментов?

Я хочу изменить размер текста в Toolbar. Потому что в моем приложении Toolbar текст имеет разные размеры как для альбомной, так и для портретной ориентации.

Можно ли изменить размер текста в Toolbar?


person Apurva    schedule 12.02.2015    source источник


Ответы (5)


Используйте 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>

Результат:

Снимок экрана

person Vukašin Manojlović    schedule 25.03.2015
comment
Работает, спасибо за решение! Сэкономил много времени! - person hetsgandhi; 30.03.2020

например, это ваша панель инструментов

<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>

как это...

person massaimara98    schedule 15.02.2015
comment
по какой-то причине android:gravity="center" не устанавливает для меня выравнивание по центру ....: - / - person Mobigital; 01.08.2017

Вы можете добавить 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>
person Simas    schedule 12.02.2015
comment
Кажется, это ответ, который подходит приложениям, поддерживающим API ‹21. titleTextAppearance - хорошее решение, но работает только с API 21 и выше. Однако есть несколько тонкостей, с которыми нам нужно справиться, работая с этим решением. Если вы используете SearchView, расширенная версия представления не будет растягиваться до левого края. Вместо этого он будет растягиваться только до правого края недавно добавленного текстового представления заголовка. Таким образом, вам придется внести здесь некоторые изменения, но, опять же, это особый случай. В общем, это хорошее решение для любой версии платформы. - person Deepak G M; 12.02.2016

[Optional steps 1 & 2)

  1. Поместите файл шрифта в папку «Project / app / src / main / assets / fonts /».

Затем создайте объект Typeface из файла шрифта как:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. Теперь получите дочерний элемент (текстовое представление заголовка панели инструментов) из существующей панели инструментов, панели инструментов по умолчанию и передайте объект гарнитуры, который мы создали выше.
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. Наконец, измените размер текста в текстовом представлении заголовка панели инструментов.
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size
person OMi Shah    schedule 13.02.2019
comment
Добро пожаловать в SO! Пожалуйста, добавьте описание, чтобы поддержать свой ответ. - person Mahib; 14.02.2019
comment
этот ответ пришел в сообщениях низкого качества в SO .... Не могли бы вы добавить комментарий к своему ответу? Объясните свою логику и дайте небольшой комментарий о том, для чего предназначен ваш код. Это поможет OP, но также послужит комментарием для будущих пользователей. - person Ram Ghadiyaram; 14.02.2019
comment
Если у вас есть значок навигации, вы должны использовать getChildAt (1) :) - person Gabor; 24.02.2020

Попробуйте это в 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.

person MorZa    schedule 16.07.2018