【转】android软键盘显示与主窗口调整方式设置,Android软键盘显示模式及打开和关闭方式(推荐)...
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);
}
以上所述是小编给大家介绍的Android软键盘显示模式及打开和关闭方式(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
【转】android软键盘显示与主窗口调整方式设置,Android软键盘显示模式及打开和关闭方式(推荐)...相关推荐
- IntelliJ IDEA 、 Android Stadio 不显示Version Contro窗口
步骤一: ctrl + shift + A, 打开窗口,输入version 之后就会打开Version Control 窗口. 如果还没有打开,那么进行第二步: 步骤二: 确保当前的目录是在git ( ...
- eclipse android logcat 只显示自己应用程序信息的设置方法
1 elcipse 中往往会在logcat中显示 all message ,而这里面的信息太多,根本没有办法进行区分.如图: 2 我们想显示自己项目的 logcat .下面开始设置. 3 首先点击上面 ...
- 为什么微信显示这个android设备,微信显示安卓手机型号在哪设置
苹果的 iPhone6 已经发布,不过首发时间是9月19号,并且中国还未在首发国家的行列中.对于像手机版的 QQ 空间.微博之类的应用可以显示我们当前使用的手机型号,但目前微信并不支持此功能.那么微信 ...
- android手机 不显示本地视频,各位大神们 android怎么获取手机本地视频啊?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 String progress[]={ MediaStore.Video.Media.DISPLAY_NAME,//视频的名字 MediaStore.Vi ...
- Android 软键盘显示隐藏判断
Android软键盘始终感觉是个BUG,难缠 用起来不顺手,每次应用版本涉及到相关问题,总是很尴尬 只能静下心好好梳理一下 1. 软键盘显示原理 软键盘的本质是什么?软键盘其实是一个Dialog In ...
- android 键盘 自动消失,android 键盘状态,获取键盘显示和隐藏
要设置弹出键盘是否覆盖Activity的view,或者软键盘的显示隐藏状态,需要用到Activity的一个属性: android:windowSoftInputMode 该属性在AndroidMani ...
- 设置Android软键盘的默认不弹出
2019独角兽企业重金招聘Python工程师标准>>> 方法一:在OnCreate()函数中,加上下面的代码 getWindow().setSoftInputMode( Window ...
- Android键盘显示和隐藏
一.不自动弹出键盘: 带有EditText控件的在第一次显示的时候会自动获得focus,并弹出键盘,如果不想自动弹出键盘,有两种方法: 方法一:在mainfest文件中把对应的activity设置 a ...
- Qt程序子窗口全屏时只能显示到主屏幕,子窗口全屏时父窗口依旧显示问题,任务栏缩略图显示错误,完美解决方案
Qt框架程序,全屏主窗口很简单,只需要调用主窗口对象的showFullScreen函数就可以了. 子窗口想要全屏的话,稍微复杂一些.因为Qt文档中明确表示,showFullScreen只对调用isWi ...
最新文章
- hive mysql 不兼容_Hive+mySql遇到的问题和解决办法
- IPv6新形势下的安全解决方案
- 新电脑一般javaweb配置
- 让android的TextView可以滚动
- keystore文件_如何手动给APK文件签名
- 解决无法删除表,提示被外键约束引用
- 《成语玩命猜》两个弓
- 编写访问数据库的应用层程序,经常catch出的一些错误
- pythonweb快速开发平台_30分钟快速搭建Web CRUD的管理平台--django神奇魔法
- 站在物联网风口,如何抢滩千亿级智能家居市场?
- 序列化和反序列化(六)——Java对象的网络传输(一)
- ListListmodel如何更快捷的取里面的model?
- WPF:MVVM模式下ViewModel关闭View
- 一份工作一年半的java开发个人简历,欢迎拍砖
- rabbitmq实践demo
- 为什么有时候字母'f'不能从pdf文件中拷贝出来
- android远程协助
- 新浪十年路 新浪的触角 新浪成年
- zookeeper选举机制详解
- 学java,报班还是自学?