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


92

Я хочу змінити розмір тексту в Toolbar. Тому що в моїй заявці,Toolbar текст має різні розміри як для альбомного, так і для портретного режиму.

Чи можна змінити розмір тексту тексту в Toolbar?

Відповіді:


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

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

2
Ласкаво просимо до SO! Будь ласка, додайте якийсь опис для підтвердження своєї відповіді
Махіб

1
ця відповідь надійшла в повідомленнях низької якості в SO .... Чи можете ви додати коментар до своєї відповіді? Поясніть свою логіку та дайте невеликий коментар щодо того, що має робити ваш код. Це допоможе ОП, але також буде слугувати коментарем для майбутніх користувачів
Рам Гадіярам

Якщо у вас є піктограма навігації, ви повинні використовувати getChildAt (1) :)
Габор,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.