这很简单但却让我感到悲痛。我希望我的操作栏显示清单中的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的操作栏。
答案 0 :(得分:0)
试试这个并告诉我,如果有效的话。
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:actionBarStyle">@style/FooBar</item>
<item name="actionBarStyle">@style/FooBar</item>
</style>
<!-- Base application theme. -->
<style name="FooBar"
parent="Widget.AppCompat.Light.ActionBar">
<item name="android:icon">@drawable/logo</item>
<item name="icon">@drawable/logo</item>
<item name="android:background">#F7430C</item>
<item name="background">#F7430C</item>
</style>
</resources>
修改强>
只有在您的活动中将actionBar.setDisplayShowHomeEnabled()
设置为true时,上述解决方案才有效。
答案 1 :(得分:0)
以下是我修复此问题的方法:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:actionBarStyle">@style/FooBar</item>
<item name="actionBarStyle">@style/FooBar</item>
</style>
<!-- Base application theme. -->
<style name="FooBar"
parent="Widget.AppCompat.Light.ActionBar">
<item name="android:icon">@drawable/logo</item>
<item name="icon">@drawable/logo</item>
<item name="android:background">#F7430C</item>
<item name="background">#F7430C</item>
</style>
在我必须设置的活动中给酒吧充气后:
bar.setDisplayShowHomeEnabled(true);