应用程式:showAsAction =" ifRoom"不工作

时间:2017-11-30 01:50:12

标签: android

我是Android新手,我遇到的问题似乎很受欢迎。没有一个解决方案对我有用,所以我无法弄清楚是什么错误。

我有一个包含2个项目的菜单(搜索,购物),我希望搜索显示在操作栏中。但是,app:showAsAction="ifRoom"没有移动搜索,因为它仍然出现在溢出中。

以下是菜单的XML:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/res-auto">
    <item android:id="@+id/shop_by"
        android:icon="@drawable/ic_shop_by"
        android:title="@string/shop_by_title"/>
    <item android:id="@+id/search"
        android:icon="@drawable/ic_search"
        android:title="@string/search"
        app:showAsAction="ifRoom"/>
</menu>

这是我覆盖onCreateOptionsMenu的地方:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    return true;
}

我错过了什么?

我尝试了app:showAsAction="ifRoom|withText"并得到了相同的行为。

我尝试android:showAsAction="ifRoom"并收到错误。

编辑: 解决了! app的命名空间应如下所示: xmlns:app="http://schemas.android.com/apk/res-auto"

2 个答案:

答案 0 :(得分:0)

您需要尝试添加orderInCategory属性。像这样:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/shop_by"
        android:icon="@drawable/ic_shop_by"
        android:title="@string/shop_by_title"
        android:orderInCategory="100"/>
    <item android:id="@+id/search"
        android:icon="@drawable/ic_search"
        android:title="@string/search"
        android:orderInCategory="99"
        app:showAsAction="ifRoom"/>
</menu>

如果您想要始终显示菜单项,请使用app:showAsAction="always"

注意:答案已从xmlns:app="http://schemas.android.com/res-auto"更新为xmlns:app="http://schemas.android.com/apk/res-auto"

对@MikeM的赞誉

答案 1 :(得分:-2)

如果您正在使用

android.support.v7.app.Activity

xml应该和你的一样。

如果您正在使用

android.app.Activity

请使用:

android:showAsAction="ifRoom|withText"

而不是

app:showAsAction="ifRoom|withText"