gpt4 book ai didi

android - Ondraw 方法不在自定义 View 中调用

转载 作者:行者123 更新时间:2023-11-30 02:10:44 28 4
gpt4 key购买 nike

我在 Android 中使用自定义 ViewGroup 和自定义 View 制作自定义 View 。

public class Custom_ViewGroup extends ViewGroup
{
public Custom_ViewGroup(Context context)
{
super(context);
addView(new OwnView(context));
}

public Custom_ViewGroup(Context context,AttributeSet attrs)
{
super(context, attrs);
addView(new OwnView(context));
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
// TODO Auto-generated method stub
}

class OwnView extends View
{
public OwnView(Context context)
{
super(context);
System.out.println("on constructor");
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);

System.out.println("ondraw child");
}
}
}

OwnView 类的 onDraw() 方法未调用。调用了 OwnView 类的构造函数。我在添加 View 后使用了 invalidate() 方法,但它没有用。

最佳答案

这是你的问题

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
// TODO Auto-generated method stub
}

您的 View 永远不会布局,因此不会绘制。您需要正确实现 onLayout 方法。此外,如果您的 ViewGroup 仅包含一个 View ,请考虑使用 FrameLayout 而不是 ViewGroup

关于android - Ondraw 方法不在自定义 View 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30139956/

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