2012-06-21 20 views
7

Come si modifica la dimensione del carattere per il titolo della barra di azione utilizzando Temi per ActionBarSherlock?Come modificare lo stile del carattere su ActionBarSherlock

Il mio tema in questo momento (applicato a tutta la mia domanda è la seguente):

<style name="Theme.MyAppDefaults" parent="@style/Theme.Sherlock.Light"> 
     <item name="android:textSize">@dimen/default_textsize</item> 
     <item name="actionBarSize">@dimen/action_bar_height</item> 
</style> 

Si noti che la dimensione del carattere è impostata come indicato su tutte le viste nel mio app. Non solo il font di ActionBar.

risposta

7

Ho ottenuto questo lavoro utilizzando il tema di seguito:

<style name="Theme.MyApp.Default" parent="@style/Theme.Sherlock.Light"> 
     <item name="actionBarStyle">@style/MyApp.SherlockActionBarStyle</item> 
     <item name="android:actionBarStyle">@style/MyApp.SherlockActionBarStyle</item> 
</style> 

<style name="MyApp.SherlockActionBarStyle" parent="@style/Widget.Sherlock.ActionBar"> 
     <item name="titleTextStyle">@style/MyApp.ActionBar.TextAppearance</item> 
</style> 

<style name="MyApp.ActionBar.TextAppearance" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Menu"> 
     <item name="android:textSize">@dimen/default_textsize</item> 
     <item name="android:textColor">@color/dark_grey</item> 
</style> 

Avviso la dimensione del testo è in stile denominato MyApp.ActionBar.TextAppearance. Inoltre, in base allo ActionBarSherlock, il tema deve essere impostato su entrambi gli attributi prefissati di Android e gli attributi normali (vedere actionBarStyle nello stile Theme.MyApp.Default in precedenza.)

+0

questo non consente i caratteri personalizzati. C'è modo di farlo ? –

10

Se è sufficiente modificare lo stile del titolo, è possibile aggiungere una vista personalizzata con In questo modo:

<TextView 
    android:id="@+id/action_custom_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="My Custom title" 
    android:textColor="#fff" 
    android:textSize="18sp" /> 

Quindi nascondere il titolo effettivo e mostrare la visualizzazione personalizzata.

_actionBar.setDisplayShowTitleEnabled(false); 

    LayoutInflater inflater = LayoutInflater.from(this); 
    View customView = inflater.inflate(R.layout.custom_action_layout, null); 

    TextView titleTV = (TextView) customView.findViewById(R.id.action_custom_title); 
    // you can apply a custom typeface here or do sth else... 

    _actionBar.setCustomView(customView); 
    _actionBar.setDisplayShowCustomEnabled(true); 

Questo è tutto! Se sei interessato qual è la dimensione predefinita del carattere per il titolo ActionBar è 18sp.

+0

Questo rimuoverà anche il pulsante home e altre visualizzazioni nella barra delle azioni? – Diederik

+0

No, non lo farebbe. Il pulsante Home, le schede, gli elementi di azione rimarranno gli stessi;) – lomza

+0

Questa non è una cattiva soluzione, preferirei solo il tema XML. Meno codice da mantenere. – Diederik

Problemi correlati