Pich Blog

关注移动开发,大数据,云计算,软件架构!

19.自定义Layout

概述

这节演示继承ViewGroup实现一个水平的ScrollView。我们需要处理的他的measure,layout,事件拦截。

onMeasure

我们这里写的很简单。

如果没有元素那就宽高都为0

然后分别判断宽高是不是采用的wrap_content,如果是高度就是第一个元素的高度。

起始没元素我们应该根据layoutParams中的宽高处理,在测量的时候没有考虑margin和padding。

onLayout

这里既是遍历所有元素,跳过GONE的元素,然后调用childView的layout方法。

事件拦截

这个思想我们在前面已经说了。

onTouchEvent

在这里我们需要处理滑动以及松开的弹性滑动。

完整代码:

代码来自CustomHorizontalScrollView。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注