我正在使用本指南http://developer.android.com/guide/topics/ui/actionbar.html创建项目并将其添加到我的应用中的操作栏。但是这些物品没有出现。这是menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_alert"
android:icon="@drawable/ic_dialog_alert"
android:title="@string/action_alert"
android:showAsAction="ifRoom" />
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
我已经在清单
中添加了主题<application
android:allowBackup="true"
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo" >
最后这是Activity中的onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
return super.onCreateOptionsMenu(menu);
}
我知道Action Bar工作正常,因为我可以毫无问题地隐藏它
ActionBar actionBar = getActionBar();
actionBar.hide();
我错过了什么?
答案 0 :(得分:0)
如果您担心没有图标出现,请尝试changind android:showAsAction =&#34; ...&#34;到android:showAsAction =&#34;总是&#34;。这将明确显示图标。如果您支持多种屏幕分辨率,这不是一个好的解决方案。
答案 1 :(得分:0)
在menu.xml
文件中尝试如下所示的自定义命名空间。你可以用任何你喜欢的方式替换自定义。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto" >
然后在您的项目(相同的xml文件)中使用该命名空间而不是android命名空间
<item android:id="@+id/action_alert"
android:icon="@drawable/ic_dialog_alert"
android:title="@string/action_alert"
custom:showAsAction="ifRoom" />
可以在this menu-drawer-compat-example on github找到更完整的示例。菜单xml文件的内容有:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:hcpl="http://schemas.android.com/apk/res-auto" >
<!-- used custom ns hcpl to force display of action buttons -->
<item
android:id="@+id/action_websearch"
android:icon="@drawable/action_search"
android:showAsAction="ifRoom|withText"
android:title="@string/action_websearch"
hcpl:showAsAction="ifRoom"/>
</menu>
这是Android compat Actionbar的示例项目,如果您比较代码,请记住这一点。
答案 2 :(得分:0)
使用设备硬件设置按钮时,您的溢出按钮会移动到设置按钮,有两种方法可以解决这个问题:
<强> XML:强>
实例化你自己的溢出:
<item android:title=""
android:id="@+id/more"
android:showAsAction="always"
android:icon="@drawable/overflow">
<menu>
<item android:id="@+id/action_alert"
android:icon="@drawable/ic_dialog_alert"
android:title="@string/action_alert"
android:showAsAction="never" />
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>
</item>
<强>的.java:强>
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}