操作button不显示在操作栏上?
我正在关注developer.android.com上的教程,并尝试在操作栏上添加项目。
虽然我添加了search操作显示的所有代码,而不是操作button元素的溢出元素。 我尝试使用软键盘选项的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
的onCreateOptionsMenu
方法。
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main_activity_actions, menu); return super.onCreateOptionsMenu(menu); }
我想知道是什么原因导致这个问题。
这是因为如果使用支持AppCompat ActionBar库和ActionBarActivity,则应该使用与在ActioBarSherlock或默认ActionBar中创buildxml菜单的标准方式不同的方式创build菜单。
所以试试这个代码:
<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>
虽然这个问题已经解决,但让我发表一个有更多信息的答案,以后可能会有帮助。
现在,问题是你已经使用了android:showAsAction="ifRoom"
和android:showAsAction="never"
,相反,如果你想让动作button始终可见,那么使用android:showAsAction="always"
仅供参考,android:showAsAction可以采取任何值:
android:showAsAction = [“ifRoom”| “从不” “withText”| “总是”| “collapseActionView”]
你可以阅读更多关于菜单资源