2013-12-11 83 views
16

我正在关注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.javaonCreateOptionsMenu方法。

@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); 
    } 

enter image description here

我想了解是什么原因导致这个问题。

+0

你能提供的截屏与溢出可见? –

+3

这看起来不像这个问题的重复... – adamdport

回答

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> 
+4

对于任何其他有这个问题的人来说,xml定义顶部的'xmlns'命名空间是很重要的。 – MarcF

+0

@MarcF - 为什么这些很重要? – Anjum

+0

@Anjum - 在没有这些声明的情况下,它对我来说不起作用。也许对其他人很明显,但当时对我来说不是这样。 – MarcF

8

虽然问题解决了,让我发帖回答更多的信息,可后来发现任何人有帮助。现在

,问题是你已经使用android:showAsAction="ifRoom"android:showAsAction="never",相反,如果你想使操作按钮总是可见的再使用android:showAsAction="always"

仅供参考,安卓showAsAction可以采取任何值之一:

android:showAsAction = [“ifRoom”| “从不” “withText”| “总是”| “collapseActionView”]

enter image description here

你可以阅读更多关于Menu Resource