adjustResize和adjustPan的比较

本文讨论了在信息列表界面中编辑框布局的问题。当编辑框行数超过9行时,会出现内容重叠的情况。通过对比RelativeLayout与LinearLayout的不同效果,并结合Activity模式设定为adjustPan或adjustResize模式,探讨了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在下面的描述中,编辑框的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值