2013-09-23 8 views
9

Я редактирую стиль xml, пытаясь получить название Activity жирным.Как установить жирный заголовок в панели действий?

<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
</style> 

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">#81CFEB</item> 
    <item name="android:textStyle">bold</item> 
</style> 

Но только то, что я могу установить, является желаемым цветом фона. Я не понимаю, почему textStyle не выделен жирным шрифтом.

Кто-нибудь знает, как его решить?

ответ

24

Можете ли вы попробовать с этим:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/MyTheme.MyActionBar</item> 
    </style> 

    <style name="MyTheme.MyActionBar"parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:titleTextStyle">@style/MyTheme.MyActionBar.TitleTextStyle</item> 
    </style> 

    <style name="MyTheme.MyActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> 
    <item name="android:background">#81CFEB</item> 
    <item name="android:textStyle">bold</item> 
    </style> 
</resources> 
+1

Tahnks! Это работает для меня :) – MarcForn

2

Для тех, кто использует AppCompat, вам нужно что-то вроде этого:

<style name="MyTheme" parent="Theme.AppCompat"> 
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item> 
    <item name="actionBarStyle">@style/MyTheme.ActionBar</item> 
</style> 

<style name="MyTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid"> 
    <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
</style> 

<style name="MyTheme.ActionBar.TitleTextStyle" parent="TextAppearance.AppCompat"> 
    <item name="android:background">#81CFEB</item> 
    <item name="android:textStyle">bold</item> 
</style> 
+1

Кажется, первый элемент в MyTheme.ActionBar не нужен. – kibitzerCZ

+0

Я думаю, что это может быть для обратной совместимости @kbitzerCZ? – Sam

+1

Я попытался оставить его как для 6.0.1 (API 23), так и для 4.0.3 (API 15), и он работает (надеюсь, что я чего-то не пропустил). – kibitzerCZ

0

если (Build.VERSION.SDK_INT> = 24) { . getSupportActionBar() SetTitle (Html.fromHtml (""+ название +"", 0));.} еще {getSupportActionBar() SetTitle (Html.fromHtml (""+ название +"")); }

+0

Хотя этот фрагмент кода приветствуется и может оказать некоторую помощь, было бы [значительно улучшено, если бы оно включало объяснение] (// meta.stackexchange.com/q/114762) из ​​* как * он решает вопрос. Без этого ваш ответ имеет гораздо меньшую образовательную ценность - помните, что вы отвечаете на вопрос читателей в будущем, а не только на человека, который спрашивает сейчас! Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение, и укажите, какие ограничения и допущения применяются. –

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