日积月累: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)方法固然能隐藏键盘,可是 ...
随机推荐
- 获取CPU使用情况信息(转)
获取了内存使用情况,也可以使用PHP的 getrusage()获取CPU使用情况,该方法在windows下不可用. print_r(getrusage()); /* 输出 Array ( [ru ...
- Two-Phase-Commit for Distributed In-Memory Caches--reference
Part I reference from:http://gridgain.blogspot.kr/2014/09/two-phase-commit-for-distributed-in.html 2 ...
- Spark HA 的搭建
接hadoop HA的搭建,因为你zookeeper已经部署完成,所以直接安装spark就可以 tar –xzf spark-1.6.1-bin-hadoop2.6.tgz -C ../service ...
- Android集成Mina NIO Socket
Mina简介 Apache MINA(Multipurpose Infrastructure 多功能框架 for Network Applications) 是 Apache 组织一个较新的项目,它为 ...
- (转徐明吉)C#生成随机数
private static char[] constant = { ', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p ...
- C# 在右下角弹出窗口
窗口代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Da ...
- WebBrowser控件使用相关
修改WebBrowser控件的内核解决方案 http://www.cnblogs.com/sung/p/3391264.html C#中的WebBrowser控件的使用 http://www.cnbl ...
- Mysql数据数据[字节、长度、数据范围]一览表
1.mysql有哪些数据类型: 主要包括以下五大类: 整数类型:BIT.BOOL.TINY INT.SMALL INT.MEDIUM INT. INT. BIG INT 浮点数类型:FLOAT.DOU ...
- QT5-控件-QLineEdit-文本输入控件,用来输入密码什么的还不错,可以和Linux登录一样不移动光标哦
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLineEdit> #i ...
- Uncaught TypeError: Cannot set property 'innerHTML' of null
学习Chrome插件时,要在弹出页面中显示当前时间,结果怎样也显示不出来 看了 http://www.cnblogs.com/mfryf/p/3701801.html 这篇文章后感悟颇深 通过调试发现 ...