向ActionBar添加按钮

时间:2014-04-07 09:49:08

标签: android android-layout

我在添加按钮到操作栏时遵循以下网站的教程 http://developer.android.com/training/basics/actionbar/adding-buttons.html#AddActions

在本教程之后,我创建了一个新的XML文件,\ res \ menu \ 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:orderInCategory="100"
android:showAsAction="always" />
<!-- Settings, should always be in the overflow -->
<item   android:id="@id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>

我的MainActivity.java,我修改了onCreateOptionsMenus()如下

public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}

然而,在编辑之后,我只能按下菜单按钮后的搜索和设置按钮,而不是由deafult显示在actiionbar中。任何提示?

由于

JC

4 个答案:

答案 0 :(得分:0)

如果您从2.2版开始定位,则必须创建自定义命名空间并添加xml 或者如果您从3.0版本进行定位,则使用相同的命名空间

至于上述问题,请尝试

android:showAsAction = "ifRoom"

或在

之后使用自定义命名空间
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myApp="http://schemas.android.com/apk/res-auto"

myApp:showAsAction:"ifRoom"

答案 1 :(得分:0)

您需要查看文档,因为它在那里: http://developer.android.com/guide/topics/ui/actionbar.html

然而,就像你在这里得到答案一样,那些来到SO寻求答案的人也是如此,这是一个非常容易解决的问题。在菜单XML文件中,您只需在myApp:showAsAction="always"标记中加入<item>选项,这将强制它始终显示。您还可以指定="never",只有在您按下菜单按钮时才显示,="ifRoom",其使用应该相当明显

答案 2 :(得分:0)

如果手机没有按here所述的菜单按钮,则溢出菜单只会显示在操作栏中。

如果您确实希望在操作栏中使用此功能,那么您可以使用this

你也可以android:showAsAction:"ifRoom"。如果没有更多的空间,它将自动放入溢出菜单。

您也可以创建自己的菜单(不附加到菜单按钮)。您可以了解如何执行此操作here

答案 3 :(得分:0)

尝试添加:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >

并更改

android:showAsAction="always"

yourapp:showAsAction="ifRoom"

最终版本将是

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto">

<!-- search, should appear as action button -->
<item   android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:orderInCategory="100"
yourapp:showAsAction="always" />
<!-- Settings, should always be in the overflow -->
<item   android:id="@id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>

如果您按照说明操作,请不要忘记使用AppCompat主题(在AndroidManifest.xml中更改)