我正在关注developer.android.com上的教程并尝试在操作栏上添加项目。
虽然我添加了所有代码,但搜索操作显示为溢出元素而不是操作按钮元素。我尝试使用软键盘选项的4“和7”虚拟设备。
这是
main_activity_actions.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom" />
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>
以下是MainActivity.java
的{{1}}方法。
onCreateOptionsMenu
我想了解是什么导致了这个问题。
答案 0 :(得分:48)
这是因为如果你使用支持AppCompat ActionBar库和ActionBarActivity,你应该创建一个不同于在ActioBarSherlock或默认ActionBar中创建xml菜单的标准方式的菜单。
所以试试这段代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
app:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
app:showAsAction="always"/>
</menu>
答案 1 :(得分:8)
虽然问题已经解决,但让我发布一个包含更多信息的答案,以后可能会对任何人有所帮助。
现在,问题是您使用了android:showAsAction="ifRoom"
和android:showAsAction="never"
,而如果您想让操作按钮始终可见,那么请使用android:showAsAction="always"
仅供参考,android:showAsAction可以采用任何值:
机器人:showAsAction = [&#34; ifRoom&#34; | &#34;从未&#34; | &#34; withText&#34; | &#34;总是&#34; | &#34; collapseActionView&#34;]
您可以阅读有关Menu Resource
的更多信息