Android 有谁能给出一个自定义视图组的好例子,其中包含一个带有测量和布局示例的自定义视图?(爪哇语)

Android 有谁能给出一个自定义视图组的好例子,其中包含一个带有测量和布局示例的自定义视图?(爪哇语),android,Android,我在使用自定义视图组和自定义视图时遇到了一些问题。我已经为此做了很多搜索,但是如果我错过了什么,请随时将我链接到那里。是的,我已经阅读了android开发网站上关于视图、视图组、度量和布局传递的所有内容,但是没有任何Java示例代码,我仍然感到困惑 1) 我的理解是,子视图需要实现onMeasure和onLayout。这是否意味着父视图组需要为其每个子视图手动调用measure()和layout()?如果是,这些电话应该在哪里?它们应该在父级的onMeasure和onLayout方法中吗?如果是

我在使用自定义视图组和自定义视图时遇到了一些问题。我已经为此做了很多搜索,但是如果我错过了什么,请随时将我链接到那里。是的,我已经阅读了android开发网站上关于视图、视图组、度量和布局传递的所有内容,但是没有任何Java示例代码,我仍然感到困惑

1) 我的理解是,子视图需要实现onMeasure和onLayout。这是否意味着父视图组需要为其每个子视图手动调用measure()和layout()?如果是,这些电话应该在哪里?它们应该在父级的onMeasure和onLayout方法中吗?如果是这样,启动整个递归过程的第一个measure()和layout()调用在哪里

2) 我发现可以使用如下方法设置childview的布局参数。是否应将此代码放置在父视图组的onLayout中

CustomView cust = new CustomView(context);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
cust.setLayoutParams(params);
如果我想设置一个MeasureSpec,我是否要将它作为另一个规则添加到这里

3) 可以创建CustomView的实例并从CustomViewGroup的代码内部将其添加到CustomViewGroup中吗?如果可以,我应该将此代码放入CustomViewGroup构造函数中吗?如果没有,是否理解为创建视图组,然后添加来自不同外部类的子级

4) 在CustomViewGroup的onDraw()方法中为我的每个子视图调用draw()是否常见

现在,当我执行一些代码来画一个圆时,它执行视图的draw方法,但实际上屏幕上没有显示任何内容。当我将它添加到relativeLayout而不是我的customViewGroup时,我没有问题……因此我认为我缺少了一个关于如何让ViewGroup显示的关键部分。(是的,我将ContentView设置为ViewGroup)

提前谢谢


编辑:请不要给我看XML,我是用Java来做的。

我建议你阅读这些内容并观看。

你可能想把这些问题分成8个独立的问题,或者至少一些更小的更有针对性的问题。flowLayout类帮了我大忙!任何对自定义布局(扩展视图组)感兴趣的人都可以使用这些幻灯片。我相信在之前的一次谷歌IO中,考虑到这些幻灯片的作者,我们展示了这些幻灯片。谢谢你的链接。宝贵资源