我在应用程序中使用应用程序兼容主题,在操作栏中,我有一个菜单,其中一个项目应显示为图标-但我却得到了这样的菜单按钮
这是我的菜单xml代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_play"
android:icon="@drawable/play"
android:orderInCategory="100"
android:showAsAction="always"/>
</menu>
以下是有关如何初始化操作栏的代码:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(false);
并显示菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.names, menu);
playStop = menu.findItem(R.id.action_play);
return true;
}
那么有人可以帮助我显示菜单项吗?
谢谢
使用支持库android:showAsAction
将不会执行其任务。因此,您的菜单声明不正确。来自文档
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="ifRoom" />
...
</menu>
如果操作栏中的项目空间不足,它将显示在操作溢出中。
使用支持库中的XML属性
注意,上面的showAsAction属性使用标记中定义的自定义名称空间。使用支持库定义的任何XML属性时,这是必需的,因为这些属性在旧设备的Android框架中不存在。因此,您必须使用自己的名称空间作为支持库定义的所有属性的前缀。
所以您的菜单XML应该是
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_play"
android:icon="@drawable/play"
android:orderInCategory="100"
app:showAsAction="always"/>
</menu>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句