Пользовательский виджет, использующий LinearLayout, не получающий onDraw ()

Я создаю собственный виджет, расширяя LinearLayout :

 public class MyWidget extends LinearLayout { private static Paint PAINT = new Paint(Paint.ANTI_ALIAS_FLAG); static { PAINT.setColor(Color.RED); } public MyWidget(Context context) { this(context, null); } public MyWidget(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(canvas.getWidth() / 2, canvas.getHeight()/2, canvas.getWidth()/2, PAINT); // never gets called :-( } @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); // this gets called, but with a canvas sized after the padding. } } 

Я могу добавить детей просто отлично, но я никогда не получаю свой onDraw() . dispatchDraw() вызывается, но у этого, похоже, есть другой холст (тот, который находится внутри отступов. Мне нужно рисовать всю область макета). Есть ли какой-то флаг, который должен быть установлен, чтобы получить onDraw() вызванный для макета?

Solutions Collecting From Web of "Пользовательский виджет, использующий LinearLayout, не получающий onDraw ()"