一年多时间以来,一直在学习,去从来疏于整理,搞得知识点好凌乱,是时候开始做个总结啦,一步步来,从基础深入吧。
今天就讲解Android的软键盘windowSoftInputMode属性:其中有adjustXX共5个合stateXX共6个;加起来就是10个;
20160520对于前些日子里说到的(使用纵向滑动会对键盘显示模式的影响其实错了,由于经验的不在再次做出修改,
其实是有可滑动控件就会对键盘显示模式造成影响)
adjustXX这一系列的属性在测试中发现是通过调整窗体/窗体里面的某些属性来显示软件盘的。注意:这一系列模式只在
有输入必要的时候才会弹出软键盘
adjustResize:activity总是会被调整大小,来确保软键盘可以显示出来,并且不一定关心当前焦点
和输入内容是否可见,activity被打开的时候会默认第一个EditText获得焦点,弹出键盘;其中:
1、当前activity没有使用滑动的控件时候,如果获取焦点的EditText在软键盘弹出可以覆盖的地方时候,当前activity
会把调整大小留出足够软键盘显示的空间,然而当前焦点和输入内容是无法看到的,如图:
adjustPan:当前activity不是通过调整activity大小来确保软键盘的显示,而是通过调整布局确保获得焦点和输入内容是可见的,
打开activity的时候默认第一个edittext获得焦点,但是软键盘不会自动打开;
1、当没有纵向滚动布局的时候,会把当前焦点以上的布局顶上去,来确保焦点可见;
2、当用有纵向滚动布局的时候,会把当前焦点以上的布局顶上去,并且有时可以通过滑动来看到上面的布局,有时可以通过滑动来看到
焦点一下的布局(这是我用小米测试的效果);
如图:第一个没有滚动布局,第二,三个有滚动布局(第二张是可以向上滑,第三张可以向下滑)
stateAlwaysVisible:这个模式不管什么情况对话强行弹出软件盘,不管是否有输入框,而且如果跳转到下个界面
的时候,下个界面没有输入框,软键盘也不会消失,也就是说它的作用不仅仅在当前页面的
stateUnchanged:这个模式就是对软键盘的状态不做改变,如果在上一个/下一个界面中软件是什么状态,到了当前
界面仍然保留过去的界面的软键盘状态,隐藏的继续隐藏,显示的继续显示
stateUnspecified:从字面意思来看就是没有指定,默认情况下使用这种方法来作交互,如果当前界面没有输入必要
(没有输入控件)或者说有输入控件但没有滚动控件的时间,软键盘就会不显示,如果两个条件都满足的话就显示
软键盘。
若有其他的看法或是更加准确的理解,请指点
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!