Come modificare la dimensione del testo della barra degli strumenti?


92

Voglio cambiare la dimensione del testo in Toolbar. Perché nella mia applicazione, il Toolbartesto ha dimensioni diverse sia per la modalità orizzontale che verticale.

È possibile modificare la dimensione del testo del testo in Toolbar?

Risposte:


283

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

e sovrascrivere la dimensione del titolo predefinita in uno stile personalizzato:

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

Risultato:

Immagine dello schermo


Funziona, grazie per la soluzione! Mi ha fatto risparmiare molto tempo!
hetsgandhi il

23

per esempio questa è la tua barra degli strumenti

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

puoi semplicemente aggiungere questa vista a questo

    app:titleTextAppearance="@style/yourstyle"

style.xml

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

come quello...


per qualche motivo android:gravity="center"non imposta l'allineamento centrato per me ....: - /
Mobigital

5

Puoi aggiungere un TextViewalla tua barra degli strumenti e personalizzare come desideri:

<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
Questa sembra essere una risposta adatta alle app che supportano API <21. titleTextAppearance è una buona soluzione ma funziona solo con API 21 e successive. Tuttavia, ci sono alcune complessità che dobbiamo affrontare con questa soluzione. Se stai usando SearchView, la versione espansa della vista non si allungherà fino all'estremità sinistra. Invece si allungherà solo fino al bordo destro della vista del testo del titolo appena aggiunta. Quindi dovrai fare qualche personalizzazione lì, ma ancora una volta questo è un caso specifico. In generale, questa è una buona soluzione per qualsiasi versione della piattaforma.
Deepak GM

3

Prova questo in 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);

Questo è tratto da Android-Examples.com .


3

[Optional steps 1 & 2)

  1. Posiziona il file del font nella cartella "Project / app / src / main / assets / fonts /".

Quindi crea un oggetto Typeface dal file del font come:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. Ora, prendi l'elemento figlio (visualizzazione del testo del titolo della barra degli strumenti) dalla barra degli strumenti esistente, la barra degli strumenti predefinita e passa l'oggetto del tipo di carattere che abbiamo creato sopra.
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. Infine, modifica la dimensione del testo della visualizzazione del testo del titolo della barra degli strumenti
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size

2
Benvenuto in SO! Aggiungi una descrizione per supportare la tua risposta.
Mahib

1
questa risposta è arrivata in post di bassa qualità in SO .... Potresti aggiungere qualche commento alla tua risposta? Spiega la tua logica e dai un piccolo commento su ciò che il tuo codice è destinato a fare. Questo aiuterà l'OP, ma servirà anche come commento per i futuri utenti
Ram Ghadiyaram

Se hai un'icona di navigazione, dovresti usare getChildAt (1) :)
Gabor
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.