我正在使用自定义ViewGroup和Android中的自定义视图制作自定义视图。
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类的构造函数。我在添加视图后使用了invalidate()方法,但它没有用。
答案 0 :(得分:1)
这是你的问题
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
// TODO Auto-generated method stub
}
你的观点从来没有布局过,所以它不会画出来。您需要正确实施onLayout
方法。另外,如果您的ViewGroup
仅包含一个视图,请考虑使用FrameLayout
代替ViewGroup
。