Собственный определенный Layout, метод onDraw () не вызывается - PullRequest
84 голосов
/ 16 октября 2011

Я определил такой класс:

public class TestMyFrameLayout extends FrameLayout{

    Paint mPaint;
    public TestMyFrameLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public TestMyFrameLayout(Context context) {
        super(context);
        mPaint = new Paint();
        mPaint.setColor(Color.GREEN);
    }

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawCircle(50f, 50f, 30, mPaint);
    }   
}

и назвал его следующим образом:

TestMyFrameLayout myFrameLayout = new TestMyFrameLayout(this);
LayoutParams myFrameLayoutParams = new LayoutParams(300,300);
myFrameLayout.setLayoutParams(myFrameLayoutParams);
setContentView(myFrameLayout);

Но на самом деле функция TestMyFrameLayout.onDraw (Canvas canvas) не вызывается, почему?

1 Ответ

194 голосов
/ 16 октября 2011

решаемая.Добавьте this.setWillNotDraw(false); в конструктор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...