gpt4 book ai didi

android - 任何人都可以举一个包含自定义 View 的自定义 View 组的好例子吗? (在 Java 中)

转载 作者:IT老高 更新时间:2023-10-28 23:12:26 26 4
gpt4 key购买 nike

我在使用自定义 View 组和自定义 View 时遇到了一些问题。我已经为此做了很多搜索,但是如果我错过了一些东西,请随时将我链接到那里。是的,我已经在 android 开发网站上阅读了有关 Views、ViewGroups、measure 和 layout pass 的所有内容,但我仍然对没有任何 Java 示例代码感到困惑。

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

2) 我看到 subview 的布局参数可以使用以下内容进行设置。这段代码是否应该放在父 View 组的 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 构造函数中吗?如果不是,是否只是理解您创建 ViewGroups 然后添加所有来自不同外部类的 child ?

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

现在,当我执行一些代码来绘制一个圆时,它执行了 view 的 draw 方法,但屏幕上实际上并没有出现任何内容。当我将它添加到 relativeLayout 而不是我的 customViewGroup 时,我没有问题......所以我想我错过了关于如何让 View 组显示的关键部分。 (是的,我将 ContentView 设置为 ViewGroup)。

提前致谢!

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

最佳答案

我建议您阅读这些 slides看这个video .

关于android - 任何人都可以举一个包含自定义 View 的自定义 View 组的好例子吗? (在 Java 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5812549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com