删除 TextView 选择 ActionMode 中的默认 CAB 项

Remove default CAB items in TextView selection ActionMode

当用户从 TextView 中选择一些文本时,我正在尝试从 CAB 中删除默认项,例如 "Copy" 和 "Select All"元素.

我已经使用此代码覆盖了默认操作,但扩充新菜单资源不会删除默认项。

textView.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {

        mode.setTitle("Test");
        mode.getMenuInflater().inflate(R.menu.new_menu_selection, menu);
        return true;
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {

        return false;
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        return false;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {

    }
});

有解决办法吗?

要删除默认项目,您可以在扩充新菜单之前调用 menu.clear()

textView.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {

        menu.clear();

        mode.setTitle("Test");
        mode.getMenuInflater().inflate(R.menu.new_menu_selection, menu);
        return true;
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {

        return false;
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        return false;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {

    }
});