我正在developer.android.com上学习文档,在课程“设置操作栏的样式”,我遇到了问题。我需要更改ActionBar的背景,为here。我使用Android Action Bar Style Generator生成所有图像(用于背景,按钮等),并将结果添加到我的项目的res / dir中。
它看起来像这样:
我手动添加了文件res / values / themes.xml,因为它在创建项目后不存在。 这是res / values / themes.xml的代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<!--<item name="android:actionBarStyle">@style/MyActionBar</item>-->
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/ab_solid_example</item>
<!-- Support library compatibility -->
<item name="background">@drawable/ab_solid_example</item>
</style>
</resources>
为了应用这个主题,我添加了
机器人:主题= “@风格/ CustomActionBarTheme”
用于应用程序,以及AndroidManifest.xml中的2个活动。以下是AndroidManifest.xml的代码:
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomActionBarTheme" >
<activity
android:name="com.example.mysecondapp.app.MainActivity"
android:label="@string/app_name"
android:theme="@style/CustomActionBarTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.mysecondapp.app.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.mysecondapp.app.MainActivity"
android:theme="@style/CustomActionBarTheme">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.mysecondapp.app.MainActivity" />
</activity>
</application>
但是,结果背景没有变化。 预览:
如果我在模拟器上运行此应用程序,也没有任何反应。
有谁知道如何修复它?
答案 0 :(得分:1)
你应该尝试这样的事情
为我工作好
<style name="CustomActionBarTheme"
parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/ab_solid_example</item>
</style>
答案 1 :(得分:0)
试试这段代码:
ActionBar bar = getActionBar(); // or MainActivity.getInstance().getActionBar()
bar.setBackgroundDrawable(new ColorDrawable("YOUR COLOR"));
无需使用Action Bar的样式。这是你能做的最简单的事情。