我是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"
orderInCategory
并不能将搜索移出溢出区 :( 但是,只要我可以更改溢出区中选项的顺序,它就能正常工作。 - Matt Fenlonapp
前缀的命名空间看起来不对。这是你做的还是 Android Studio 做的?它应该是http://schemas.android.com/apk/res-auto
,除非新版本有所更改。 - Mike M.