日积月累:EditText软键盘的显示和隐藏
在工作过程中,常常会遇见需要根据自己的需求,控制文本框的键盘显示和隐藏。 通过查阅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键隐藏
日积月累:EditText软键盘的显示和隐藏的更多相关文章
- EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听
软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeO ...
- Android 软键盘的显示和隐藏,这样操作就对了
一.前言 如果有需要用到输入的地方,通常会有需要自动弹出或者收起软键盘的需求.开篇明义,本文会讲讲弹出和收起软键盘的一些细节,最终还会从源码进行分析. 想要操作软键盘,需要使用到 InputMetho ...
- android 软键盘的显示与隐藏问题的研究
在android中,常常会和输入法的软件键盘交互.在Manifest文件中,系统给activity的一个属性-windowSoftInputMode来控制输入法的显示方式. 该属性提供了Activit ...
- android软键盘的显示和隐藏
显示: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.toggle ...
- Android EditText软键盘显示隐藏以及“监听”
一.写此文章的起因 本人在做类似于微信.易信等这样的聊天软件时,遇到了一个问题.聊天界面最下面一般类似于如图1这样(这里只是显示了最下面部分,可以参考微信等),有输入文字的EditText和表情按钮等 ...
- Android手动控制软键盘的开启和关闭,判断软键盘是否显示;
工具类,拿走就能用: import android.annotation.TargetApi; import android.app.Activity; import android.content. ...
- Android文本输入框(EditText)切换密码的显示与隐藏
package cc.c; import android.app.Activity; import android.os.Bundle; import android.text.Selection; ...
- EditText 软键盘
EditText 软键盘 package brother.eighteen.demoedittext; import android.content.Context; import android.t ...
- android制,点击EditText时刻,隐藏系统软键盘,显示光标
由于项目中要用自己定义的随机键盘,所以必须得屏蔽系统软键盘,可是在4.0的測试系统来看,使用editText.setInputType(InputType.TYPE_NULL)方法固然能隐藏键盘,可是 ...
随机推荐
- ViewPage 一次滑动多页
效果 size是3的倍数时 其他情况下 初始化 private List<HonerUserBean> anchorList; private ViewPager vp ...
- Avast注册以及更新
昨天无聊在网上看Avast,然后下了玩. Avast有三种版本,免费版,网络版,高级版. 下了个高级版,在贴吧和论坛找激活码,发现大部分都没用,最后找了一个许可文件 关于Avast的注册,有在线和离线 ...
- 把数据库中的null作为条件查询应该用is
如select * from mbXX where tuijian is null 而不是select * from mbXX where tuijian=null
- 查看oracle数据库下面的所有的表,执行某个sql脚本:
查看oracle数据库下面的所有的表: select * from user_tables;//user为用户名 执行某个sql脚本: SQL>@e 文件名.sql
- 杂记之web篇
问题1:通过POST方式提交给后台的数据出现了乱码,用部分浏览器测试却是好的. 解决办法: 在web.config文件中加上 <globalization responseEncoding=&q ...
- 传输层-TCP
UDP协议提供了端到端之间的通讯,应用程序只需要在系统中监听一个端口,便可以进行网络通讯.随着计算机网络的发展,计算机网络所承载的业务越来越多,有些业务数据的传输需要具备可靠性,譬如我们在进行在线聊天 ...
- Delphi 串口打印机打印
一.硬件准备 打印机: 打印机必须具有串口,没有标配串口的打印机,必须购买串口卡,串口卡的型号请参考随机<操作手册>. 计算机: 计算机必须具有串口,计算机通常具有两个串口:COM1和CO ...
- 设置Activity显示和关闭时的动画效果
设置Activity显示和关闭时的动画效果 通过overridePendingTransition方法可以设置Activity显示和关闭的动画效果.首先需要在res/anim目录中建立相应的动画资源文 ...
- 关于laravel框架的Auth::attempt验证失败
按照官方文档进行认证 发现不管怎么样都是失败 if (Auth::attempt(array('email' => $email, 'password' => $password), tr ...
- css background-position:x% y%
规则1: background-position:xpx ypx; 为正值时:背景图片的左上顶点朝右下移动直至距离div的左上顶点为xpx ypx: 规则2: background-position: ...