参考资料

  1. EditText是否自动弹出输入法虚拟键盘(软键盘)的问题
  2. android软键盘隐藏总结

在开发过程中,我们经常会碰到Activity中包含EditText控件时会自动弹出虚拟键盘的情形,其实这是由于EditText自动获得焦点的缘故,只要让EditText失去焦点就行了,解决办法如下:

1.在Manifest.xml文件中相应的Activity下添加如下代码即可:
    android:windowSoftInputMode="stateHidden"  

android:windowSoftInputMode 属性详解

  1. stateUnspecified: 默认设置:软键盘的状态(隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置
  2. stateUnchanged: 软键盘被保持上次的状态。
  3. stateHidden: 当用户选择该Activity时,软键盘被隐藏。
  4. stateAlwaysHidden: 软键盘总是被隐藏的。
  5. stateVisible: 软键盘是可见的。
  6. stateAlwaysVisible:当用户选择这个Activity时,软键盘是可见的。之后Activity获取焦点,软键盘也会自动弹出,强制hide不了,这是值得我们关注的。
  7. adjustUnspecified: 它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间, 或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。 如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。也就是说, 系统自动决定是采用平移模式还是压缩模式,决定因素在于内容是否可以滚动。
  8. adjustResize: 压缩模式) 当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。
  9. adjustPan:(平移模式:当输入框不会被遮挡时,该模式没有对布局进行调整,然而当输入框将要被遮挡时, 窗口就会进行平移。也就是说,该模式始终是保持输入框为可见
2.让EditText失去焦点,用EditText的clearFocus即可:
EditText edit = (EditText)findViewById(R.id.edit);  edit.clearFocus();  
3.强制隐藏Android输入法窗口
EditText edit = (EditText)findViewById(R.id.edit);  InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);  imm.hideSoftInputFromWindow(edit.getWindowToken(), 0);  
4.EditText始终不弹出虚拟键盘
EditText edit = (EditText)findViewById(R.id.edit);  edit.setInputType(InputType.TYPE_NULL);  

更多相关文章

  1. android:windowSoftInputMode属性详解以及editText监听键盘回车
  2. Android(安卓)LCD和键盘 背光亮度数据流分析
  3. Android轻松集成Camera拍照
  4. Android隐藏输入法软键盘的一些说明
  5. Android(安卓)Hook Java
  6. Android开发中完全退出程序的三种方法
  7. Appium的一点一滴:Appium 和Android真机
  8. Android中软键盘监听
  9. Android(安卓)搜索 把软键盘上的回车键改为搜索

随机推荐

  1. 自定义标签 Unable to find setter metho
  2. 为何使用java反射机制
  3. Java并发包中常用类小结(三)
  4. JVM 内部原理(五)— 基本概念之 Java 虚拟
  5. 我的构建可以规定我的代码覆盖范围永远不
  6. 从零开始学_JavaScript_系列(65)——class
  7. Tomcat version 7.0仅支持J2EE 1.2、1.3
  8. Selenium InternetExplorerDriver无法找
  9. 适配器模式和外观模式
  10. jsoup 分页抓取网页数据Java HTML Parser