动作模式栏的所有图标未在Android中显示吗? [英] All icons of ActionMode Bar are not showing in Android?

查看:67
本文介绍了动作模式栏的所有图标未在Android中显示吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为动作模式栏创建了一个带有图标的菜单,但并非所有菜单都在动作模式栏中显示带有图标.这是我的菜单xml文件.

I have created a menu for my actionmode bar with icons but not all menu are showing with icon in actionmode bar. This is my menu xml file.

<?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>

这是我创建动作模式栏的代码.

This is my code for creating 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;
}

此图像是我的输出,仅显示菜单的一个图标,但我也希望所有其他图标.

This image is my output which is showing only one icon of menu but i want all other icons too.

推荐答案

这可能为时已晚,但是我要回答这个问题,以防其他人遇到相同的问题.看来系统没有保留app:showAsAction="always"属性的计数.

This may be a little too late, but I'm putting this answer in case someone else runs into the same problem. It seems the system does not keep count of the app:showAsAction="always" attribute.

解决方法是在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;
}

这似乎很奇怪,但是可以.

This seems odd but it works.

这篇关于动作模式栏的所有图标未在Android中显示吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆