blob: 28ab089b3d11359ee287621229d69d19b51505d1 [file] [log] [blame]
package test.pkg;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
@SuppressWarnings("unused")
public class LayoutTest extends LinearLayout {
private MyChild child;
public LayoutTest(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom); // OK
child.onLayout(changed, left, top, right, bottom); // Not OK
super.onMeasure(0, 0); // Not OK
super.onDraw(null); // Not OK
child.layout(left, top, right, bottom); // OK
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec); // OK
super.onLayout(false, 0, 0, 0, 0); // Not OK
child.onMeasure(widthMeasureSpec, heightMeasureSpec); // Not OK
child.measure(widthMeasureSpec, heightMeasureSpec); // OK
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); // OK
child.onDraw(canvas); // Not OK
child.draw(canvas); // OK
}
private class MyChild extends FrameLayout {
public MyChild(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
}
}