adjustResize和adjustPan的比较
在下面的描述中,编辑框的maxLine都设定为10。
在信息列表界面中,编辑框在RelativeLayout中定义。编辑框上边(above)的列表组件的高度不会缩小为0,导致显示出现一点问题。
当信息列表中有信息时,当输入一定行数,比如超过9行,编辑框上边会出现重叠的内容。
当信息列表中没有信息时,编辑框上边没有任何重叠。
将RelativeLayout改成LinearLayout,在编辑框上边的listView控件的height设定为0dip且weight设定为1。
将Activity都设定为adjustResize模式。在软键盘弹出时,列表控件的高度会逐渐缩小直至为0。
比较两个截图的区别。
在信息列表界面,编辑框将列表控件的区域全部占领。占领之后还是不够将编辑框全部显示。以至于编辑框下边有一小部分被软键盘挡住。
在新建信息界面,编辑框被缩小了,使得编辑框不会被软键盘挡住。查看布局定义,新建信息的编辑框放在FrameLayout中。
将Activity设定为adjustPan模式之后再做比较,如下所示。
查看截图。当软键盘显示出来时,如果当前光标被软键盘挡住,整个屏幕会往上平移,直到可以看到光标(即可以在编辑框中输入内容)为止。所以会出现这个现象:编辑框一部分被软键盘挡住,只有光标及其上边的部分不会被软键盘挡住。
不管屏幕布局是RelativeLayout还是LinearLayout,当Activity设定为adjustPan模式时,效果都是一样的。点击编辑框时,软键盘弹出来。如果光标被软键盘挡住,那么整个屏幕往上平移,直至看到光标为止。
布局文件定义见:比较MessageListActivity使用不同的layout