Как я могу изменить стиль шрифта на 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.

Ответы на вопрос(2)

Решение Вопроса

<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 тема должна быть установлена как для префиксных атрибутов Android, так и для обычных атрибутов (см. actionBarStyle в стиле Theme.MyApp.Default выше.)

 30 мар. 2013 г., 11:54
это не позволяет настраивать шрифты. есть ли способ сделать это?

вы можете добавить собственный вид, например:

<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, вы можете выбрать его.

 29 июн. 2012 г., 10:19
В любом случае, удачи в программировании Android ActionBar;)
 Diederik29 июн. 2012 г., 08:02
Это неплохое решение, я бы предпочел тему только для XML. Меньше кода для поддержки.
 13 февр. 2013 г., 15:32
Я не думаю, что будет хорошей идеей заменить заголовок пользовательским представлением, если все, что вы хотите отобразить, - это фрагмент текста. Пользовательские виды предназначены для более сложных макетов, которые не поддерживаются исходной панелью действий. Установка стиля с использованием titleTextStyle должно быть достаточно.
 Diederik28 июн. 2012 г., 10:29
Будет ли это также удалить кнопку «Домой» и другие виды в панели действий?
 28 июн. 2012 г., 11:26
Нет, это не так. Кнопка «Домой», вкладки, элементы действий останутся прежними;)

Ваш ответ на вопрос