我正在创建一个包含EditText的对话框。该对话框占用屏幕的一半以上,对话框的逻辑不允许使用键盘。
我正在使用此解决方案Android 4.0 EditText without soft keyboard and with cursor positioning,但我发现当你有一个多行EditText时,它不起作用,因为你只能选择第一行。
是否有可用于多行EditText的解决方案?
对于单行,这有效:
if(v.getId() == R.id.emo_text_field){
Layout layout = ((EditText) v).getLayout();
float x = event.getX() + v.getScrollX();
int offset = layout.getOffsetForHorizontal(0, x);
if(offset>0){
if(x>layout.getLineMax(0)){
((EditText) v).setSelection(offset); // touch was at end of text
}
else{
((EditText) v).setSelection(offset - 1);
}
}
return true;
}
答案 0 :(得分:0)
根据要求,这是我找到的解决方案:
public void disableSoftInputFromAppearing(EditText editText) {
if (Build.VERSION.SDK_INT >= 11) {
editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
editText.setTextIsSelectable(true);
} else {
editText.setRawInputType(InputType.TYPE_NULL);
editText.setFocusable(true);
}
}
在你的onCreate中,只需输入:
disableSoftInputFromAppearing(editTextView);
这样,键盘就不会出现在Android的任何SDK版本上。希望它可以帮助别人。