Android禁止EditText弹出输入法
16lz
2021-01-23
网上方法很多,尝试的方法包括但不限于:
1.在AndroidMainfest.xml对应的Activity中加入android:windowSoftInputMode="stateHidden"。
它有九个取值: stateUnspecified、stateUnchanged、stateHidden、stateAlwaysHidden、stateVisible、stateAlwaysVisible、adjustUnspecified、adjustResize、adjustPan。具体含义可参考:
https://blog.csdn.net/twoicewoo/article/details/7384398/
https://www.cnblogs.com/gccbuaa/p/7049889.html
2.使用clearFocus方法清除EditText的焦点。
3.隐藏安卓输入法窗口:
EditText edit=(EditText)findViewById(R.id.edit); InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(edit.getWindowToken(),0);
均无效。最终使用的方法为设置
edit.setInputType(InputType.TYPE_NULL);
但是出现了焦点消失的问题,参考:https://blog.csdn.net/sinat_27672523/article/details/56839837解决
//禁止输入法弹出的同时不失去焦点与光标public void disableShowInput() {if (android.os.Build.VERSION.SDK_INT <= 10) {h.setInputType(InputType.TYPE_NULL);m.setInputType(InputType.TYPE_NULL);s.setInputType(InputType.TYPE_NULL);} else {Class cls = EditText.class;Method method;try {method = cls.getMethod("setShowSoftInputOnFocus", boolean.class);method.setAccessible(true);method.invoke(h, false);method.invoke(m, false);method.invoke(s, false);} catch (Exception e) {}try {method = cls.getMethod("setSoftInputShownOnFocus", boolean.class);method.setAccessible(true);method.invoke(h, false);method.invoke(m, false);method.invoke(s, false);} catch (Exception e) {}}}
另外分享https://blog.csdn.net/mynameishuangshuai/article/details/51567357以供学习。
更多相关文章
- android集成百度地图SDK 自定义keystore无法编译 Keystore was t
- Android:启动页有短暂白屏的解决方法
- 关于Android生命周期方法调用return的问题
- android颜色设使用方法
- android 点击返回键退出程序的方法
- Android studio+真机 运行报错[INSTALL_FAILED_INSUFFICIENT_STO
- Android——Android Studio开发环境搭建及设置本地Gradle方法
- 在android中创建bitmap避免内存不足的方法
- Android Studio使用Wifi调试的方法:使用Android WIFI ADB