Android软键盘显示模式:

    android定义了一个属性,名字为windowSoftInputMode, 用它可以让程序可以控制活动主窗口调整的方式。我们可以在AndroidManifet.xml中对Activity进行设置。如:android:windowSoftInputMode="stateUnchanged|adjustPan"

    该属性可选的值有两部分,一部分为软键盘的状态控制,另一部分是活动主窗口的调整。前一部分本文不做讨论,请读者自行查阅android文档。
     模式一,压缩模式
    windowSoftInputMode的值如果设置为adjustResize,那么该Activity主窗口总是被调整大小以便留出软键盘的空间。

我们通过一段代码来测试一下,当我们设置了该属性后,弹出输入法时,系统做了什么。

 模式二,平移模式
    windowSoftInputMode的值如果设置为adjustPan,那么该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。
    上面的例子中,我们将AndroidManifest.xml的属性进行更改:android: windowSoftInputMode = "adjustPan"

模式三 自动模式
    当属性windowSoftInputMode被设置为adjustUspecified时,它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。

    也就是说,系统自动决定是采用平移模式还是压缩模式,决定因素在于内容是否可以滚动。  


Android软键盘打开和关闭方式:

切换软键盘:

   
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  //得到InputMethodManager的实例if (imm.isActive()) {//如果开启imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS); //关闭软键盘,开启方法相同,这个方法是切换开启与关闭状态的}

关闭软键盘
if(getCurrentFocus()!=null){((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); }






更多相关文章

  1. Android应用开发Android 常见的设计模式
  2. 软键盘的相关设置
  3. iPhone和Android UI模式比较列表
  4. android设定手机的显示模式,横竖屏,是否全屏
  5. Android键盘自动弹出解决方法分析
  6. Android虚拟键盘挡住输入组件的解决办法

随机推荐

  1. c语言程序从哪里开始执行
  2. C++运算符中不能重载的是哪些
  3. eof在c语言中表示什么
  4. c语言本身没有输入输出语句吗
  5. c语言中continue语句的作用是什么
  6. C语言中字符串的结束标志是什么
  7. vc++和c++之间有什么区别?
  8. C语言标识符有哪三类
  9. strcat函数的作用是什么
  10. c语言是高级语言吗?