android - ScrollView如何做到夹在两个控件(分别位于顶部和低部)之间,而且不覆盖内容?
PHP中文网
PHP中文网 2017-04-17 13:09:10
[Android讨论组]

最近一个小的问题纠结住了我,是这样的:

我在一个Android界面布局需要3部分,顶部是一个固定的标题,最下面是一个固定的东西,放个可打电话的按钮之类的,中间是一个ScrollView,用来浏览信息。ScrollView的浏览不能遮挡住顶部和底部的标题,也就是说顶部和底部标题始终都要在。

总体我采用了RelativeLayout布局,里面分为3个RelativeLayout子布局,第一个和第三个布局简单放了一个TextView,第二个布局放了一个ScrollView。

创建过程:
1、顶部的RelativeLayout首先写出来,命名为relativelayout1,里面简单放了一个TextView;

2、中间的布局,命名为relativelayout2,里面放了一个ScrollView,在relativelayout2中设置了属性android:layout_below="@id/relativelayout1",那它自然而然就跑到了relativelayout1的下方;

3、底部的布局,命名为relativelayout3,里面也简单放了一个TextView,在relativelayout3中设置成属性android:layout_alignParentBottom="true",那底部布局就顺利的始终留在了窗口的最下面。

但是问题来了!!
ScrollView的底部没办法设置下边界要对齐relativelayout3的上边缘啊,它造成的后果是:relativelayout3虽然始终留在了界面的最下方,但是把ScrollView的最下面遮盖住了。也就是说
如图所示(TextView我加了透明色,可以更直观的看出来问题所在)

再放大一些

也就是说我想把左图的布局变为右图的布局:

这里有我的简单的代码,直接复制到编译环境里就ok,字符串www可以放一段很长的文字以使效果更明显。麻烦诸位帮忙看下!






    




    
    




    

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
大家讲道理

最外层用LinearLayout,relativelayout1和relativelayout3设置layout_weight=1, relativelayout2不设置layout_weight。

阿神

原来的布局文件不变,在layout2 加一行 layout_above=layout3 应该就可以了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号