随着Android发展,版本更新,目前通过方法:
mInputEdit.setInputType(InputType.TYPE_NULL);
来实现屏蔽弹出软键盘时会发现,光标也莫名其妙地消失了,小编目前遇到这个问题,很头疼,后来在别无它法的情况下,迫于无奈,采取了较暴力的反射调用隐藏方法,实现了EditText在获得焦点时有光标闪,但点击不弹出键盘,本方法较为暴力,若非无奈切勿使用,或者有其它更好的方法,欢迎留言,谢谢哈,具体的反射实现方法如下:
private void setMyInputType() {
if (android.os.Build.VERSION.SDK_INT <= 10) {
mInputEdit.setInputType(InputType.TYPE_NULL);
} else {
if (getActivity() == null) {
return;
}
getActivity().getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
try {
Class<EditText> cls = EditText.class;
Method setSoftInputShownOnFocus = cls.getMethod(
"setSoftInputShownOnFocus", boolean.class);
setSoftInputShownOnFocus.setAccessible(true);
setSoftInputShownOnFocus.invoke(mInputEdit, false);
} catch (Exception e) {
e.printStackTrace();
}
try {
Class<EditText> cls = EditText.class;
Method setShowSoftInputOnFocus;
setShowSoftInputOnFocus = cls.getMethod(
"setShowSoftInputOnFocus", boolean.class);
setShowSoftInputOnFocus.setAccessible(true);
setShowSoftInputOnFocus.invoke(mInputEdit, false);
} catch (Exception e) {
e.printStackTrace();
}
}
}
代码中的mInputEdit即你需要设置的EditText。
谢谢哈,欢迎有更好方法时评论告诉小编,小编不胜感激。