在工作过程中,常常会遇见需要根据自己的需求,控制文本框的键盘显示和隐藏。 通过查阅Android文档,介绍可以通过在清单文件中<activity>元素中添加android:windowSoftInputMode属性来处理

这个属性主要影响两件事情

1.软键盘的状态—当Activity显示给用户的时候,它是显示还是隐藏

2.主活动窗口的调整—它是否调整主窗体大小来给软键盘腾出空间,或者在部分窗口被软键盘覆盖的时候,它的内容能否上拉让当前的焦点可见

该属性设置必须由如下表格中的一个,或者一个”state..."值和一个"adjust..."值的组合,或者在任意组中设置多个值。每个值使用|分隔

<activity android:windowSoftInputMode="stateVisible|adjustResize". . .> 

1.设置软件盘的状态

描述

"stateUnspecfied"

不指定软键盘的状态,系统将选择一个合适的状态,或者依赖主题的设置。这是默认的软键盘行为设置

"stateUnchanged"

当Activity显示的时候,软键盘保持它前面Activity的任何状态,无论显示或者隐藏

"stateHidden"

当用户选着这个Activity,显示的时候软键盘隐藏

"stateAlwaysHidden"

当Activity的主窗体获取输入焦点的时候,软键盘总是隐藏。(经测试,在三星I959手机中无效)

"stateVisible"

当在适当的时候,软键盘显示

"StateAlwaysVisible"

当用户选择这个Activity,显示的时候软键盘总是可见(经测试,在三星I959手机中无效)

2.主活动窗口的调整

"adjustUnspectified"

没有明确指定是否Activity的主窗体调整来给软键盘腾出空间,或者窗体的内容上拉使得当前的焦点在屏幕中可见

"adjustResize"

Activity的主窗体总是为屏幕中的软键盘腾出空间

"adjustPan"

Activity的窗体的内容上拉,使得当前的焦点在屏幕中可见

3.adjustResize和adjustPan的实际效果

实验一:页面B指定属性adjustResize,观察页面B的键盘状态

显示键盘前不显示软键盘

显示键盘后:重置了窗体大小,并且保持当前的焦点输入框在屏幕中可见

实验二:页面B指定属性adjustPan,观察页面B的键盘状态

显示键盘前不显示软键盘

显示键盘后:界面没有重置大小,内容整体向上拉,当前焦点输入框在屏幕中不可见

4.stateUnchanged、StateHiddeng等的实际效果

实验一:页面B指定属性stateUnchanged,从页面A跳转至页面B,观察页面B的键盘状态

页面A的状态显示软键盘

跳转后,页面B的状态:页面B保持页面A的键盘显示状态

实验二:页面B指定属性stateHidden属性,从页面跳转页面B,观察页面B的键盘状态

页面A的状态不显示软键盘

跳转后,页面B的状态:页面B默认不显示键盘,在用户点击输入框获取焦点的时候,显示软键盘

实验三:页面B指定属性stateVisible属性,从页面跳转页面B,观察页面B的键盘状态

页面A的状态不显示软键盘

跳转后,页面B的状态:页面B默认显示软键盘,点击Back键隐藏


更多相关文章

  1. Android中点击空白区域隐藏软键盘功能实现
  2. Android自定义view之EditText中显示提示文本,在提示文本后面可输
  3. Android的Activity一打开就出现讨嫌的软键盘,怎样将其关闭?
  4. 在android上,用WEB页面打开手机摄像头
  5. Android(安卓)Toast自定义
  6. android软键盘enter键
  7. Firefox常见问题总结
  8. Android基于IIS的APK下载(二)显示更新列表
  9. Android(安卓)利用Hierarchy Viewer工具学习别人的UI设计

随机推荐

  1. TextView 的一些常见属性
  2. Android(安卓)性能优化 二 TraceView工具
  3. Android(安卓)揭露动画(Reveal Effect)的兼
  4. Android使用Rotate3dAnimation实现3D旋转
  5. android关于内存溢出的异常
  6. android之ScrollView里嵌套ListView(转)
  7. 【推荐收藏】2017年最新的分类Android项
  8. android TextView实现自动滚动和Java中改
  9. 解决android ERROR: Unknown option '--n
  10. Android(安卓)ApiDemo学习(三)activity(3)