请教下需要怎么改可以解决这个问题?

public class Test0812Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

AbsoluteLayout layer = (AbsoluteLayout)findViewById(R.id.AbsoluteLayout01);

CheckBox btt = new CheckBox(this);
layer.addView(btt);
btt.setText("4567");
btt.layout(100, 100, 200, 200);
btt.postInvalidate();
}
}
为什么生成的CheckBox总是出现在左上角,而不是layout函数中规定的100,100,200,200?

慕后森
浏览 200回答 2
2回答

猛跑小猪

btt.setText("4567");btt.layout(100, 100, 200, 200);btt.postInvalidate();layer.addView(btt);你这样排版试试

慕的地6264312

我推测应该是在onCreate()之后才开始绘图,所以会导致layout()失效解决办法是post一个Runnable,在Runnable内部layout()同样,在构造函数中使用layout()也无效别说layout()了,玩个getWidth()都是0
打开App,查看更多内容
随时随地看视频慕课网APP