【问题标题】:How to hide ActionPopupWindow of Text Selection Handler of EditText如何隐藏EditText的文本选择句柄的动作弹出窗口
【发布时间】:2018-04-04 15:25:36
【问题描述】:

其实我想在用户点击 + 图标(参考附图)时隐藏 ActionPopupWindow(弹出窗口有 SELECT ALL、CLIPBOARD 选项)。

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

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

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

【问题讨论】:

    标签: android android-layout android-edittext android-textinputedittext


    【解决方案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;
            }
        });
    

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

    您也可以通过here查看其他选项

    【讨论】:

    • 您好 Oğuzhan Döngül,感谢您的快速回复。但是当用户单击任何按钮(如附件图像中的 + 图标)时,我需要隐藏 ActionPopupWindow(具有 SELECT ALL、CLIPBOARD 选项的弹出窗口)。
    • @abhishekkumargupta 更新了我的答案并解决了您的实际问题。
    • 感谢 Oğuzhan Döngül。我很惊讶我是如何跳过这个清除焦点的简单概念的。
    猜你喜欢
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2016-02-20
    相关资源
    最近更新 更多