【问题标题】:Remove default CAB items in TextView selection ActionMode删除 TextView 选择 ActionMode 中的默认 CAB 项
【发布时间】:2015-11-09 07:35:18
【问题描述】:

当用户从 TextView 元素中选择一些文本时,我正在尝试从 CAB 中删除默认项,例如“复制”和“全选”。

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

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) {

    }
});

有解决办法吗?

【问题讨论】:

  • 尝试在onCreateActionMode()中返回false
  • 返回 false 不会显示让用户扩展其选择的箭头

标签: android textview android-actionmode


【解决方案1】:

要删除默认项目,您可以在扩展新菜单之前调用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) {

    }
});

【讨论】:

  • 完美!没想到这么简单
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
相关资源
最近更新 更多