adjustResize和adjustPan的比较

在下面的描述中,编辑框的maxLine都设定为10。

在信息列表界面中,编辑框在RelativeLayout中定义。编辑框上边(above)的列表组件的高度不会缩小为0,导致显示出现一点问题。

image image image image

当信息列表中有信息时,当输入一定行数,比如超过9行,编辑框上边会出现重叠的内容。

image 

当信息列表中没有信息时,编辑框上边没有任何重叠。

 

将RelativeLayout改成LinearLayout,在编辑框上边的listView控件的height设定为0dip且weight设定为1。

将Activity都设定为adjustResize模式。在软键盘弹出时,列表控件的高度会逐渐缩小直至为0。

image image

比较两个截图的区别。

在信息列表界面,编辑框将列表控件的区域全部占领。占领之后还是不够将编辑框全部显示。以至于编辑框下边有一小部分被软键盘挡住。

在新建信息界面,编辑框被缩小了,使得编辑框不会被软键盘挡住。查看布局定义,新建信息的编辑框放在FrameLayout中。

将Activity设定为adjustPan模式之后再做比较,如下所示。

image  image

查看截图。当软键盘显示出来时,如果当前光标被软键盘挡住,整个屏幕会往上平移,直到可以看到光标(即可以在编辑框中输入内容)为止。所以会出现这个现象:编辑框一部分被软键盘挡住,只有光标及其上边的部分不会被软键盘挡住。

不管屏幕布局是RelativeLayout还是LinearLayout,当Activity设定为adjustPan模式时,效果都是一样的。点击编辑框时,软键盘弹出来。如果光标被软键盘挡住,那么整个屏幕往上平移,直至看到光标为止。 


布局文件定义见:比较MessageListActivity使用不同的layout

posted on 2013-07-20 11:52  勤修  阅读(35905)  评论(0编辑  收藏  举报

导航