我已经为我的动作模式栏创建了一个带有图标的菜单,但并非所有菜单都在动作模式栏中显示了图标。这是我的菜单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/menu_archive"
android:icon="@drawable/ic_action_file_archive"
android:orderInCategory="100"
android:title="@string/action_remove"
app:showAsAction="always" />
<item
android:id="@+id/menu_upload_to_cloud"
android:icon="@drawable/ic_action_file_cloud_upload"
android:orderInCategory="200"
android:title="@string/action_upload_to_cloud"
app:showAsAction="always" />
<item
android:id="@+id/menu_delete"
android:icon="@drawable/ic_action_file_delete"
android:orderInCategory="300"
android:title="@string/action_move_to_trash"
app:showAsAction="always" />
</menu>
这是我创建Actionmode Bar的代码。
@Override
public boolean onCreateActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.menu_actionmode_device_documents, menu);
return true;
}
@Override
public boolean onPrepareActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(android.support.v7.view.ActionMode mode, MenuItem item) {
}
@Override
public void onDestroyActionMode(android.support.v7.view.ActionMode mode) {
this.actionMode = null;
}
这个图像是我的输出,只显示一个菜单图标,但我也想要所有其他图标。
答案 0 :(得分:11)
这可能有点太晚了,但我会提出这个答案,以防其他人遇到同样的问题。系统似乎没有统计app:showAsAction="always"
属性。
解决方案是在onPrepareActionMode
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
menu.findItem(R.id.menu_archive).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.findItem(R.id.menu_upload_to_cloud).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.findItem(R.id.menu_delete).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
return true;
}
这看似奇怪,但确实有效。