我尝试自定义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 >
但它显示如下图:
为什么menu button
没有改变背景?我错过了什么吗?
答案 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
您可以使用自定义,易于着色Toolbar
(doc here)