您的位置:首页 > 移动开发 > Android开发

android开发之软键盘控制

2015-12-04 16:33 543 查看
android开发中我们经常要遇到软键盘的控制。一些遇到这些问题时,总是现学现买,今天就花点时间总结一下。以后再遇到类似的问题时,看看这篇博客即可。

我觉得软键盘的控制主要是两个方面。

1. 软键盘的状态。( stateUnspecified、stateUnchanged、stateHidden、stateAlwaysHidden、stateVisible、 stateAlwaysVisible)也就是显示和隐藏。

2. 我们都知道软键盘其实就是一个对话框,当弹出软键盘时,主窗体如何调整。(adjustNothing、 adjustUnspecified、adjustResize、 adjustPan)

我今天主要是想总结软键盘的调整模式。

一、adjustNothing

这种模式,就是不调整的意思。不管在edittext所在的布局中是否含有带滚动的view,这种模式下窗体都是不调整的。如果是这样的话,导致的结果输入框可能被软键盘遮盖。

二、adjustUnspecified

这种模式下,可能是一种平移模式(adjustPan),也有可能是一种压缩模式(adjustResize)。当这个edittext所在的布局中含有能滚动的view时,比如是listview,scrollview,那么adjustUnspecified就表现出一种压缩模式。否则就是一种平移模式。

三、adjustResize

是一种压缩模式。会改变edittext所在的布局的高度。从而是导致父布局的onsizechange方法被执行。有一点要特别注意,当edittext所在的布局中含有listview,事实上这中布局结构很常见,当软键盘弹起和收起时,会导致listview的高度发生改变,就会出现 notifyDataSetChanged的效果,getview方法就会调用。

四、adjustPan

是一种平移模式。当软键盘弹起时,当前的edittext所有的布局会上移。但父布局的onsizechange的方法不会被调用的。

主要是参考了如下资料: http://www.educity.cn/wenda/180902.html http://blog.csdn.net/wang_shaner/article/details/8467688
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: