Как увеличить размер текста кнопки Android ActionBar?

У меня есть две кнопки ActionBar: одна отображает только значок, другая без значка — я использую текст для отображения количества новых элементов, которые получает приложение. Проблема в том, что размер текста слишком мал, хотелось бы сделать что-то побольше.

Пробовал стилизацию:

<item name="android:actionBarStyle">@style/MyActionBar</item>

нет эффекта.

Пробовал загружать пользовательский вид:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:gravity="fill_vertical"
android:orientation="horizontal" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:minWidth="64dip"
    android:src="@drawable/ic_action_refresh" />

<ImageButton
    android:id="@+id/button1"
    android:scaleType="centerInside"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    style="?android:attr/actionButtonStyle"
    android:text="0" />

No success either.

Однако я бы предпочел сохранить стиль и свойства обычной кнопки ActionBar, просто увеличив размер текста. Есть ли способ добиться этого? Я не использую Sherlock, ниже мой код для ActionBar.

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
<item 
    android:id="@+id/action_about" 
    android:title="@string/action_about" 
    android:showAsAction="never">        
</item>
<item 
    android:id="@+id/action_counter"  
    android:title="@string/action_counter"
    android:showAsAction="always|withText">
</item>
<item 
    android:id="@+id/action_refresh"  
    android:title="@string/action_refresh"
    android:icon="@drawable/ic_action_refresh" 
    android:showAsAction="always">        
</item>

I would like to change text size of the action_counter only.


person Tomasz Plonka    schedule 13.06.2013    source источник


Ответы (2)


В базовой теме вашего приложения добавьте следующий элемент:

<item name="android:actionMenuTextAppearance">@style/CustomActionBar</item>

Затем определите CustomActionBar следующим образом:

<style name="CustomActionBar" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
    <item name="android:textSize">20sp</item>
</style>
person Gautam    schedule 14.02.2014
comment
Вы должны использовать 20sp вместо 20dp при указании размера шрифта в соответствии с рекомендациями Google. - person gleenn; 17.11.2014
comment
Я обнаружил, что в библиотеке поддержки AppCompat мне пришлось использовать ‹item name=actionMenuTextAppearance›@style/CustomActionBar‹/item› и наследовать от TextAppearance.AppCompat.Widget.ActionBar.Menu, если это кому-то поможет. - person MungoRae; 01.06.2015
comment
Это решение не работает для меня. У меня есть переопределение actionMenuTextAppearance и ссылка на мой стиль, унаследованный от ActionBar.Menu, без какого-либо результата - person Karoly; 06.03.2017

Вам нужно применить стиль к панели действий. Определите стиль в папке style.xml и попробуйте применить его к панели действий.

person Community    schedule 18.12.2014