ActionBar 操作项未显示 [重复]
Posted
技术标签:
【中文标题】ActionBar 操作项未显示 [重复]【英文标题】:ActionBar Action Items not showing [duplicate] 【发布时间】:2013-07-28 14:18:56 【问题描述】:我有一个非常简单的代码,但是即使经过长时间的谷歌搜索,我也无法解决这个问题。我想在我的 ActionBar 中有一些 Action Items,但每当我运行应用程序时,我看到的只是一个带有 App 徽标和标题的 ActionBar,但没有 Action Items。
如果你能帮助我,那就太好了,可能我只是错过了最明显的事情;)
这就是我的 ActionBarActivity 中的方法:
@Override
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);
这是 ActionBar 的相关 .xml 文件(名为 main_activity_actions.xml):
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
android:showAsAction="always"/>
</menu>
【问题讨论】:
代码显示正确。但是,您在清单文件中声明的 minTargetSdk 是哪个,您正在测试应用程序的 android 版本是什么?? 【参考方案1】:这是因为如果您使用支持 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>
如果可行,请报告。
注意:检查应该使用的额外前缀xmlns:app
!
【讨论】:
因此澄清一下,“app”被使用了 3 次:在菜单中和每个项目中使用一次。必须应用差异来捕捉它:-) 这与使用应用程序兼容库有关,因此您可以将其与旧版本的 android 一起使用。如果您的目标是新版本,那么您不需要这样做。并将您的 api min 设置得更高。【参考方案2】:可以确定您没有使用使您的操作项不可见的样式。
例如,如果您使用“android:Theme.Holo.Light.DarkActionBar”,您会看到一个黑色的操作栏,因此您将无法看到您的黑色项目。
切换到“android:Theme.Holo.Light”,它们就会出现。
查看文件(例如)res/values-v14/styles.xml
【讨论】:
【参考方案3】:在这里,你需要像这样在你的 xml 中添加菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:orderInCategory="0"
android:showAsAction="always"
android:icon="@drawable/menu">
<menu>
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
android:showAsAction="always"/>
</menu>
</item>
</menu>
【讨论】:
这不起作用,操作项仍然没有显示。【参考方案4】:试试这个:
@Override
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 true;
【讨论】:
不,那样不行。 我很好奇,我总是这样使用这个回调,从来没有遇到过问题。这就是为什么我想知道您的整体设置是什么,例如 minSDK 以及您是否使用支持库?以上是关于ActionBar 操作项未显示 [重复]的主要内容,如果未能解决你的问题,请参考以下文章