【发布时间】:2015-04-12 17:42:35
【问题描述】:
我创建了一个小型测试应用来练习在普通 Activity(不是 ActionBarActivity)中设置操作栏,因为我只计划使用 API 级别 15 及更高级别。我想在操作栏上显示搜索图标。如果我像这样设置 menu_main.xml 文件,我可以显示搜索图标,但并非没有错误:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom"/>
</menu>
我可以让应用程序在我的模拟器中正常运行并显示图标,但在 Android Studio 中弹出错误:
"当使用 appcompat 库时,菜单资源应该引用 app: 命名空间中的 showAsAction,而不是 android: 命名空间。同样,当不使用 appcompat 库时,您应该使用 android:showAsAction 属性。"
我可以通过从 build.gradle 文件中删除以下行来消除错误:
compile 'com.android.support:appcompat-v7:22.0.0'
但是,删除支持库似乎不是一个好主意(尽管我在这里可能错了)。如果我使用错误推荐的 app:namespace 方法,我可以摆脱错误,但是搜索图标不会出现在操作栏上;相反,搜索选项出现在溢出菜单中。如何正确显示搜索图标而不会出现错误且不删除支持库?我只是忽略错误吗?我是否应该坚持为我的应用程序使用 ActionBarActivity(即,是否有理由尝试使用带有操作栏的普通 Activity 或者我在浪费时间)?我正在为这个项目使用 Android Studio。
【问题讨论】:
标签: android android-activity android-actionbar searchview