为什么ActionBar的菜单没有改变背景

时间:2014-12-18 08:44:20

标签: android android-actionbar

我尝试自定义ActionBar

Fragment中,我使用以下代码设置ActionBar

ActionBar actionBar = getActivity().getActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setHomeButtonEnabled(false);
actionBar.setCustomView(R.layout.actionbar);

actionbar.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bar_background" >

    <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:src="@drawable/bar_icon"/>    

</RelativeLayout >

但它显示如下图:

enter image description here

为什么menu button没有改变背景?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

CustomView用于放置自定义视图(例如已创建的类) - Buttons,样式化TextViews,其他小部件等。您只是寻找背景,因此您可以使用:< / p>

actionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.bar_background));

或(更好,更喜欢)使用样式设置ActionBar样式:

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

<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/bar_background</item>
</style>
</resources>

使用新的AppCompat您可以使用自定义,易于着色Toolbardoc here