![](/img/trans.png)
[英]How to change cursor position in a multiline edittext in android?
[英]Change multiline EditText cursor position without opening keyboard
我正在创建一个包含EditText的对话框。 对话框占用屏幕的一半以上,并且对话框的逻辑不允许使用键盘。
我使用的是不带软键盘且具有光标定位的Android 4.0 EditText解决方案,但我发现当您有多行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;
}
根据要求,这是我为此找到的解决方案:
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版本上。 希望它可以帮助别人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.