android 中 ActionBar 的相关问题

我使用下面的代码显示 action bar:

setTheme(android.R.style.Theme_WithActionBar);
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(0x000000));

显示图像如下:
CSDN移动问答

添加的 menu.xml 如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/a"
        android:icon="@drawable/a" 
        android:title="1"
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/b"
        android:icon="@drawable/b" 
        android:title="2" 
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/c"
        android:icon="@drawable/c" 
        android:title="3" 
        android:showAsAction="ifRoom|withText" />
</menu>

1.我想设置背景颜色列表为黑色。
2.我想设置顺位为ActionBar显示1和2,list显示3,如何实现?

  • 要设置 ActionBar 的背景颜色为黑色,你可以使用 bar.setBackgroundDrawable(new ColorDrawable(Color.BLACK))。

  • 要让 ActionBar 中的某一项显示在 ActionBar 中,你可以将该项的 showAsAction 属性设置为 ifRoom|withText。要让另一项显示在 ActionBar 的下拉菜单中,你可以将该项的 showAsAction 属性设置为 never。

例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/a"
        android:icon="@drawable/a" 
        android:title="1"
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/b"
        android:icon="@drawable/b" 
        android:title="2" 
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/c"
        android:icon="@drawable/c" 
        android:title="3" 
        android:showAsAction="never" />
</menu>

这样,1 和 2 将显示在 ActionBar 中,而 3 将显示在 ActionBar 的下拉菜单中。