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(安卓)SDK Manager下载问题和android studio每次启动
  2. 初涉Android之文件保存
  3. Android中EditText的inputType属性值
  4. Android中Activity启动模式详解
  5. Android应用开发Android(安卓)常见的设计模式
  6. Android调用输入法软键盘,返回输入的内容
  7. Android(安卓)实现聊天-smack4.19
  8. 【转】android:windowSoftInputMode属性使用
  9. 软键盘的相关设置

随机推荐

  1. 一个php框架的简单实现,仅实现简单路由层
  2. 关于PHP打印格式化显示利器
  3. PHP常见数组排序方法小汇总
  4. php实现断点续传大文件
  5. 数组转json后的结果是数组还是对象? (踩坑
  6. 中文分词 PHP 扩展 SCWS 安装方法
  7. 关于PHP循环读取json数据的方法
  8. 详解PHP面向对象之后期静态绑定
  9. 速看!php artisan 命令列表
  10. 或许你想去掉Response Headers中的X-Powe