Bagaimana cara mengubah ukuran teks toolbar?

94

Saya ingin mengubah ukuran teks Toolbar. Karena dalam aplikasi saya, Toolbarteks memiliki ukuran yang berbeda baik untuk mode landscape maupun portrait.

Apakah mungkin untuk mengubah ukuran teks dalam teks Toolbar?

Apurva
sumber

Jawaban:

287

Penggunaan 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" />

dan menimpa ukuran judul default dengan gaya kustom:

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

Hasil:

Screenshot

Vukašin Manojlović
sumber
Berhasil, terima kasih atas solusinya! Menghemat banyak waktu saya!
hetsgandhi
23

misalnya ini toolbar Anda

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

Anda dapat menambahkan tampilan ini dengan sederhana

    app:titleTextAppearance="@style/yourstyle"

style.xml

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

seperti itu...

massaimara98
sumber
untuk beberapa alasan android:gravity="center"tidak mengatur perataan tengah untuk saya ....: - /
Mobigital
5

Anda dapat menambahkan a TextViewke toolbar dan menyesuaikan sesuai keinginan Anda:

<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>
Simas
sumber
4
Ini tampaknya menjadi jawaban yang sesuai dengan aplikasi yang mendukung API <21. titleTextAppearance adalah solusi yang bagus tetapi hanya berfungsi dengan API 21 ke atas. Namun, ada beberapa kerumitan yang perlu kita tangani dengan solusi ini. Jika Anda menggunakan SearchView, versi tampilan yang diperluas tidak akan meregang hingga ujung kiri. Sebaliknya itu hanya akan meregang sampai tepi kanan tampilan teks judul yang baru ditambahkan. Jadi, Anda harus melakukan beberapa penyesuaian di sana tetapi sekali lagi ini adalah kasus khusus. Secara umum, ini adalah solusi yang bagus untuk semua versi platform.
Deepak GM
4

[Optional steps 1 & 2)

  1. Tempatkan file font Anda di folder "Project / app / src / main / assets / font /".

Kemudian buat objek Typeface dari file font sebagai:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. Sekarang, dapatkan item anak (toolbar title textview) dari toolbar yang ada, toolbar default dan berikan objek jenis huruf yang kita buat di atas.
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. Terakhir, ubah ukuran teks tampilan teks judul toolbar
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size
OMi Shah
sumber
2
Selamat datang di SO! Harap tambahkan beberapa deskripsi untuk mendukung jawaban Anda.
Mahib
1
jawaban ini datang dalam posting Kualitas Rendah di SO .... Bisakah Anda menambahkan komentar untuk jawaban Anda? Jelaskan logika Anda, dan berikan sedikit komentar tentang tujuan kode Anda. Ini akan membantu OP, tetapi juga akan berfungsi sebagai komentar bagi pengguna di masa mendatang
Ram Ghadiyaram
Jika Anda memiliki ikon navigasi, Anda harus menggunakan getChildAt (1) :)
Gabor
3

Coba ini di 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);

Ini diambil dari Android-Examples.com .

MorZa
sumber