横向方向中不显示Android自定义EditText选择菜单

时间:2017-03-09 21:04:11

标签: android

我在一个活动中为EDITTEXT元素定制了选择菜单,该活动显示一个表单以替换COPY,PASTE等,并自动将所选文本复制并粘贴到已定义的EDITTEXT元素。它基于this solution使用

setCustomSelectionActionModeCallback(new ActionMode.Callback()... 

onPrepareActionMode(ActionMode mode, Menu menu)

这在纵向模式下效果很好,但在横向模式下,会显示全屏软键盘(带有NEXT / DONE按钮),它似乎会覆盖我的自定义菜单,使用默认选项COPY / PASTE等。

1 个答案:

答案 0 :(得分:0)

我通过调用setShowSoftInputOnFocus(false)来解决这个问题,它允许在选择文本时显示自定义菜单,但是当视图获得焦点时,它不会阻止显示软键盘。

public boolean onCreateActionMode(ActionMode mode,Menu menu){                 // TODO自动生成的方法存根

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                editTextDescription.setShowSoftInputOnFocus(false);
            }
            return true;
        }

我的解决方案完成了这项工作,因此它可能对面临同样问题的人有用。是否有一种更清晰的方法可以在横向方向保留自定义选择菜单功能?为什么软键盘显示有异常将视图的ShowSoftInputOnFocus设置为false?