5

Ho creato un ActionBar (android.support.v7.widget.Toolbar) come di seguito.Come personalizzare il carattere di sottotitoli della barra delle azioni?

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/myToolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize"> 
</android.support.v7.widget.Toolbar> 

Nella mia barra delle azioni, oltre al titolo, dispongo anche di sottotitoli. Tuttavia, vorrei personalizzare il sottotitolo. In personalizzare, intendo la dimensione del carattere, il colore e il carattere tipografico.

Ho provato attraverso vari temi e stili, e ancora senza successo.

Se c'è un semplice esempio completo di come si potrebbe fare, ciò sarebbe di grande aiuto. Grazie!

risposta

29

Se non si dispone già di questo attributo dello spazio dei nomi nel tuo file di layout aggiungerlo:

xmlns: app = "http://schemas.android.com/apk/res-auto"

aggiornare gli attributi Toolbar nel tuo file di layout in questo modo:

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/myToolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:titleTextAppearance="@style/ToolbarTitleAppearance" 
    app:subtitleTextAppearance="@style/ToolbarSubtitleAppearance" 
    android:minHeight="?attr/actionBarSize"> 
</android.support.v7.widget.Toolbar> 

Aggiungere stili come questi:

<style name="ToolbarTitleAppearance" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title"> 
    <item name="android:textSize">20dp</item> 
    <!-- include other attributes you want to change: textColor, textStyle, etc --> 
</style> 

<style name="ToolbarSubtitleAppearance" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle"> 
    <item name="android:textSize">14dp</item> 
</style> 
+1

Impressionante! Grazie!! Ho quasi optato per la soluzione meno ideale, ad esempio 'getSupportActionBar(). SetSubtitle (Html.fromHtml (" "+ title +" "));' – Elye

+4

per le dimensioni del testo dovresti usare sp e non dp –

+1

@FrancescoDonzello Controlla Android fonti, usano dp per le dimensioni del testo della barra degli strumenti. E ha senso perché l'altezza della barra degli strumenti non cambia mentre si modifica la dimensione del carattere di base nelle impostazioni del telefono. – AppiDevo

Problemi correlati