Android 操作模式菜单图标未显示

Android 操作模式菜单图标未显示,android,androidx,android-actionmode,Android,Androidx,Android Actionmode,当我长时间点击recyclerview中的某个项目时,我正在尝试设置上下文操作栏。但菜单图标不显示 代码如下所示 listAdapter.setOnItemClickListener(object : OnItemClickListener { override fun onItemClick(position: Int) { ... } override fun onItemLongCl

当我长时间点击recyclerview中的某个项目时,我正在尝试设置上下文操作栏。但菜单图标不显示

代码如下所示

listAdapter.setOnItemClickListener(object : OnItemClickListener {

            override fun onItemClick(position: Int) {
               ...
            }

            override fun onItemLongClick(position: Int): Boolean {

                if (actionMode != null) {
                    return false
                }

                val activity = activity as AppCompatActivity
                actionMode = activity.startSupportActionMode(actionModeCallback)


                return true
            }

        })
操作模式回调

internal val actionModeCallback = object : ActionMode.Callback {

    override fun onActionItemClicked(mode: ActionMode?, item: MenuItem?): Boolean {
        when (item?.itemId) {
            R.id.item_delete -> {
                actionMode?.finish()
                return true
            }
        }
        return false
    }

    override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean {
        actionMode?.menuInflater?.inflate(R.menu.menu_context, menu)
        actionMode?.title = "delete"

        return true
    }

    override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?): Boolean {

        return false
    }

    override fun onDestroyActionMode(mode: ActionMode?) {
        actionMode = null
    }
}
菜单\u context.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/item_delete"
        android:title="@string/menu_option_text_delete"
        android:icon="@drawable/ic_delete_white_24dp"
        app:showAsAction="always"
        />
</menu>

我尝试了什么?

  • 活动
    操作模式
  • 尝试更改动作模式背景,以查看主题是否存在问题
不起作用,甚至动作模式标题也未显示

我正在使用androidx,appCompat版本:
1.1.0-rc01


请帮忙

解决方案是在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_delete).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
  menu.findItem(R.id.menu_upload_to_cloud).setShowAsAction
  (MenuItem.SHOW_AS_ACTION_ALWAYS);
   return true;
 }

事实上,这是一个错误,在我的部分指出,在报告中

请注意,您应该使用传入模式,而不是您自己的模式 ActionMode对象以获取正确的充气器


正如我在问题中提到的,我已经试过了,没有效果
override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean {
     /*-->*/mode?.menuInflater?.inflate(R.menu.menu_context, menu)
     return true
}