2012-06-21 2 views
7

Как изменить размер шрифта для заголовка панели действий с помощью Темы для ActionBarSherlock?Как изменить стиль шрифта на ActionBarSherlock

Моя тема на данный момент (применяется ко всей моей заявки выглядит следующим образом):

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

Обратите внимание, что размер шрифта устанавливается как указано на всех соображениях в моем приложении. Просто не шрифт ActionBar.

ответ

7

я получил эту работу, используя приведенную ниже тему:

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

Обратите внимание на размер текста в стиле имени MyApp.ActionBar.TextAppearance. Также в соответствии с ActionBarSherlock тема должна быть задана как для атрибутов prefixed android, так и для обычных атрибутов (см. ActionBarStyle в стиле Theme.MyApp.Default выше.)

+0

это не позволяет настраивать шрифты. есть ли способ сделать это? –

10

Если вам нужно просто изменить стиль заголовка, вы можете добавить пользовательский вид с помощью например:

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

Затем скрыть фактическое название и показать пользовательский вид.

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

Это все! Если вас интересует, какой размер шрифта по умолчанию для названия ActionBar составляет 18sp.

+0

Будет ли это также удалять кнопку дома и другие виды в панели действий? – Diederik

+0

Нет, это не так. Кнопка «Домой», вкладки, элементы действия останутся прежними;) – lomza

+0

Это не плохое решение, я бы просто предпочел только тему XML. Меньше кода для поддержки. – Diederik

Смежные вопросы