2012-06-21 17 views
7

Jak zmienić rozmiar czcionki tytułu paska czynności przy użyciu kompozycji dla ActionBarSherlock?Jak zmienić styl czcionki w ActionBarSherlock

Mój motyw w tej chwili (stosowanej do całego mojego wniosku jest następująca):

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

Zauważ, że rozmiar czcionki jest ustawiony jako zestaw na wszystkich widoków w mojej aplikacji. Po prostu nie czcionka ActionBar.

Odpowiedz

7

dostałem tej pracy za pomocą poniższego tematu:

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

Zawiadomienie rozmiaru tekstu jest w stylu nazwanego MyApp.ActionBar.TextAppearance. Również zgodnie z ActionBarSherlock motyw powinien być ustawiony zarówno na atrybuty prefiksowane w systemie Android, jak i na atrybuty normalne (zobacz actionBarStyle w stylu Theme.MyApp.Default powyżej).

+0

to nie pozwala na używanie niestandardowych czcionek. czy jest jakikolwiek sposób to zrobić? –

10

Jeśli chcesz tylko zmienić styl tytułu, możesz dodać niestandardowy widok z tak:

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

Następnie ukryj rzeczywisty tytuł i pokaż niestandardowy widok.

_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); 

To wszystko! Jeśli jesteś zainteresowany, jaki jest domyślny rozmiar czcionki w tytule ActionBar, to 18sp.

+0

Czy spowoduje to również usunięcie przycisku głównego i innych widoków na pasku akcji? – Diederik

+0

Nie, nie będzie. Przycisk Home, zakładki, elementy akcji pozostaną takie same;) – lomza

+0

To nie jest złe rozwiązanie, wolałbym tylko temat XML. Mniej kodu do utrzymania. – Diederik

Powiązane problemy