1

不知何故,我很难弄清楚一个看似简单的问题。我指定的所有属性,包括android:textandroid:textSizeandroid:textColorandroid:textAppearance,似乎都对我的 ActionBar 没有任何作用。当我在 ActionBar 上运行我的项目“MainActivity”时仍然是白色的并且默认字体大小。我正在使用 API 级别 16。

这是我的styles.xml:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="AppTheme" parent="android:style/Theme.Holo">
        <item name="android:actionBarStyle">@style/ActionBar</item>
    </style>

    <style name="ActionBar" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:text">This String Is Not Showing Up In ActionBar!</item>
        <item name="android:textColor">@android:color/holo_orange_dark</item>
        <item name="android:textSize">44dp</item>
    </style>
</resources>

和我的 AndroidManifest.xml:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

有人可以告诉我我做错了什么吗?

4

2 回答 2

2

一些东西:

<item name="android:text">This String Is Not Showing Up In ActionBar!</item>

这行不通。应使用清单中的活动标签字段或通过访问活动中的操作栏对象来设置操作栏标题。

更新:被删除的信息部分不准确。事实证明,您可以使用 android:title 标记在 styles.xml 中设置操作栏的标题。这是一个更准确的解决方案:

 <style name="ActionBar" parent="android:style/Widget.Holo.ActionBar">
    <item name="android:title">This String WILL show up in the ActionBar!</item>
    <item name="android:textColor">@android:color/holo_orange_dark</item>
    <item name="android:textSize">44dp</item>
</style>

旧答案

要更改操作栏标题 ( titleTextStyle ) 的文本样式,您将需要一个新样式:

<style name="Text.ActionBar">
    <item name="android:textColor">@android:color/holo_orange_dark</item>
    <item name="android:textSize">44dp</item>
</style>

并从您的操作栏样式中引用它

<style name="ActionBar" parent="android:style/Widget.Holo.ActionBar">
    <item name="android:titleTextStyle">@style/Text.ActionBar</item>        
</style>

有关可以在操作栏中设置主题的样式的更多信息,请查看R.attr文档。

于 2012-08-23T00:42:30.720 回答
0

我可以用下面的代码做类似的事情。PS - 我使用了 Appcompat,但由于您使用的是 ApI 16,您可以使用当前的 ActionBar 本身。

<!-- general styles for the action bar -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
    <item name="android:titleTextStyle">@style/TitleTextStyle</item>
    <item name="android:background">@drawable/actionbar_background</item>
</style>

<!-- action bar title text -->
<style name="TitleTextStyle"  parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/actionbar_text</item>
    <item name="android:textSize">100sp</item>
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppCompatTheme">

    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
于 2014-02-08T11:42:05.810 回答