【发布时间】:2015-02-23 00:12:48
【问题描述】:
这很简单,但它让我很伤心。我希望我的操作栏在清单中显示由 android:logo 指定的@drawable 资源:
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/logo">
<activity
android:name=".MainActivity"
android:theme="@style/CustomActionBarTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
如果我删除了 android:theme 属性,会出现徽标,但由于主活动中 super.onCreate(savedInstanceState); 处的一些非法状态异常,应用程序会立即崩溃。如果我离开主题,则操作栏是空白的,并且在活动中设置了背景颜色。
主题:
<?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>
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:icon">@drawable/logo</item>
<item name="android:background">#F7430C</item>
</style>
活动设置背景:
public class MainActivity extends ActionBarActivity {
private ActionBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
我只需要一个带有徽标和背景颜色#F7430C 的操作栏。
【问题讨论】:
-
检查过了,没用
-
不改变背景颜色吗?
-
是的,但图标没有显示
-
你确定你在
onCreate()方法中写getActionBar().setIcon(R.drawable.ic_launcher);吗?你的应用的minSdkVersion是什么? -
你在使用 appcompat 21 吗?