ActionBar appcompat子菜单

时间:2014-01-30 14:38:57

标签: android android-actionbar submenu android-appcompat

在我的应用程序android中我想添加一个像这样的动作栏(它有一个子菜单)

enter image description here

我的xml代码是

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >
    <item
        android:id="@+id/menu_item_search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="always"
        android:icon="@drawable/abc_ic_search"
        android:title="Search Products">
    </item>

    <item
        android:id="@+id/menu_Home"
        app:showAsAction="never"
        android:icon="@drawable/abc_ic_search"
        android:showAsAction="ifRoom|withText"
        android:title="Home"/>
    <item
        android:id="@+id/menu_favourite"
        app:showAsAction="never"
        android:icon="@drawable/abc_ic_search"
        android:showAsAction="ifRoom|withText"
        android:title="favourite"/>
    <item
        android:id="@+id/menu_Balance"
        app:showAsAction="never"
        android:icon="@drawable/abc_ic_search"
        android:showAsAction="ifRoom|withText"
        android:title="Balance"/>
    <item
        android:id="@+id/menu_logout"
        android:icon="@drawable/abc_ic_search"
        app:showAsAction="never"
        android:showAsAction="ifRoom|withText"
        android:title="Logout"/>
</menu>

在android sdk 2.x中结果它不是我想要的

enter image description here

我也试过

<item
    android:id="@+id/root_menu"
    DetailsPage:showAsAction="always"
    android:icon="@drawable/abc_ic_menu_moreoverflow_normal_holo_light"
    android:title="More">
    <menu>
        <item
            android:id="@+id/menu_Home"
            DetailsPage:showAsAction="ifRoom|withText"
            android:icon="@drawable/abc_ic_search"
            android:showAsAction="ifRoom|withText"
            android:title="Home"/>
        <item
            android:id="@+id/menu_Balance"
            DetailsPage:showAsAction="ifRoom|withText"
            android:icon="@drawable/abc_ic_search"
            android:showAsAction="ifRoom|withText"
            android:title="Balance"/>
        <item
            android:id="@+id/menu_logout"
            android:icon="@drawable/abc_ic_search"
            DetailsPage:showAsAction="ifRoom|withText"
            android:showAsAction="ifRoom|withText"
            android:title="Logout"/>
    </menu>
</item>

我该怎么做才能拥有相同的图片plz(也许菜单弹出?)

帮我plz

2 个答案:

答案 0 :(得分:3)

将命名空间从app更改为compat解决了我的问题:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:compat="http://schemas.android.com/apk/res-auto" >


    <item
        android:id="@+id/action_submenu"
        android:title="@string/action_submenu"
        android:icon="@drawable/abc_ic_menu_moreoverflow_normal_holo_dark"
        compat:showAsAction="always">

        <menu>
            <item
                android:id="@+id/action_settings"
                android:title="@string/action_settings"
                compat:showAsAction="always"/>

            <item
                android:id="@+id/action_example"
                android:title="@string/action_example"
                compat:showAsAction="withText|ifRoom"/>
        </menu>
    </item>

</menu>

答案 1 :(得分:0)

您以错误的方式使用命名空间。要使showAsAction属性正常工作,您必须使用“app”命名空间而不是android命名空间。在您第一次尝试时,每次设置showAsAction="never"时都会使用它。这就是为什么你没有得到预期的结果。

删除所有android:showAsAction="..."并设置所有app:showAsAction="always"="ifRoom|withText"

希望我回答你的问题,如果我这样做,请将其作为正确答案检查。