Android-android怎么让一个view滚动和不滚动

Android-android怎么让一个view滚动和不滚动

归属感 发布于 2017-09-24 字数 818 浏览 1186 回复 1

请输入图片描述

如图

我的布局是这样的
RelativeLayout --> 自定义view

这是不滚动状态,其实就是放缩,放缩成屏幕大小。这是没问题的。

现在要实现宽度和屏幕大小一致。但是超过屏幕高度是滚动状态要怎么实现呢?

free模式:自由模式是不滚动
join模式:拼接模式需要滚动

PS:
自定义view是在程序中动态添加的
我尝试过在RelativeLayout外面套一层ScrollView。但是自定义view里面的方法onLayout
里面得到的参数有问题。

@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);

int width = right - left;
int height = bottom - top;

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2017-10-10 1 楼

是由于图片的这个原因要加滚动吗??

我建议是在最外层加一个ScrollView, 且重写自定义View的onMeasure方法,在onMeasure方法中setMeasuredDimension(xWidth, yHeight);设置其实际的宽高,这样就可以滚动效果。
比如:可视区域的大小是800×600,但是实际view的1024×768,这时可以通过重写onMeasure设置setMeasuredDimension(1024, 768);实现滚动效果。

但是你有时大小刚好时又得取消滚动,那么就要重新绘制自定义View,且重新调用onMeasure方法来更新View的大小。