1

实际上,当用户单击+图标(请参阅附图)时,我想隐藏 ActionPopupWindow(具有 SELECT ALL、CLIPBOARD 选项的弹出窗口)。

当用户单击文本选择处理程序(气泡)时出现 ActionPopupWindow(当用户点击 EditText 中的文本时出现)。

我曾尝试使用 EditText 的 setTextIsSelectable() 方法,但它无法始终如一地工作。

任何帮助或指导将不胜感激。

在此处输入图像描述

4

1 回答 1

1

更新:要隐藏已打开并显示在屏幕上的弹出窗口,您需要在单击加号按钮时清除当前视图的EditText焦点或关注其他视图。请参见下面的示例:

iconPlus.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        yourEditText.clearFocus();
    }
});

如果您希望弹出窗口从不出现在第一位,有很多方法可以做到这一点。

最简单的方法是禁用长按和选择功能:

yourEditText.setLongClickable(false);
yourEditText.setTextIsSelectable(false);

第二个是在您的编辑文本上覆盖操作回调操作:

    yourEditText.setCustomSelectionActionModeCallback(new ActionMode.Callback() {

        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        public void onDestroyActionMode(ActionMode mode) {                  
        }

        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            return false;
        }

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

您可以根据自己的情况单独或一起使用它们。

您也可以从这里检查其他选项

于 2018-04-19T09:37:50.583 回答