我在一个活动中为EDITTEXT元素定制了选择菜单,该活动显示一个表单以替换COPY,PASTE等,并自动将所选文本复制并粘贴到已定义的EDITTEXT元素。它基于this solution使用
setCustomSelectionActionModeCallback(new ActionMode.Callback()...
onPrepareActionMode(ActionMode mode, Menu menu)
这在纵向模式下效果很好,但在横向模式下,会显示全屏软键盘(带有NEXT / DONE按钮),它似乎会覆盖我的自定义菜单,使用默认选项COPY / PASTE等。
答案 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?