Ondraw 方法不在自定义视图中调用
Ondraw method not calling in custom view
我正在 Android 中使用自定义 ViewGroup 和自定义视图制作自定义视图。
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 class 的 onDraw() 方法未调用。已调用 OwnView class 的构造函数。我在添加视图后使用了 invalidate() 方法,但是没有用。
这是你的问题
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
// TODO Auto-generated method stub
}
您的视图从未布局,因此不会绘制。您需要正确实现 onLayout
方法。此外,如果您的 ViewGroup
仅包含一个视图,请考虑使用 FrameLayout
而不是 ViewGroup
。
我正在 Android 中使用自定义 ViewGroup 和自定义视图制作自定义视图。
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 class 的 onDraw() 方法未调用。已调用 OwnView class 的构造函数。我在添加视图后使用了 invalidate() 方法,但是没有用。
这是你的问题
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
// TODO Auto-generated method stub
}
您的视图从未布局,因此不会绘制。您需要正确实现 onLayout
方法。此外,如果您的 ViewGroup
仅包含一个视图,请考虑使用 FrameLayout
而不是 ViewGroup
。