我通过扩展
android.widget.EditText创建了一个自定义的EditText.
当EditText具有焦点时,我希望只有可见的自动正确跨度.所以我调用setInputType(INPUT_NO_FOCUS);在构造函数中:
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
if (focused) {
setInputType(INPUT_FOCUS);
} else {
setInputType(INPUT_NO_FOCUS);
}
}
有:
private final int INPUT_NO_FOCUS = TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE
| InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
private final int INPUT_FOCUS = TYPE_CLASS_TEXT | TYPE_TEXT_FLAG_MULTI_LINE
| InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | InputType.TYPE_TEXT_FLAG_AUTO_COMPLET;
==>确实没有自动更正和自动完成,但在单击EditText后它不会出现.输入类型已成功更改.
如何触发自动更正/添加自动完成?
//编辑:
用户案例我想存档:
> MyEditText扩展EditText视图显示而不是焦点.文本上没有拼写检查( – >文本下没有红色跨度/行)
>用户点击编辑字段即可. – >拼写检查被触发 – >出现红线(用户可以点击拼写错误的单词并让操作系统更正)
>用户点击另一个View元素 – >红线/跨度消失.