
Android编程中关于layout(l,t,r,b)函数的问题
publicclassTest0812ActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@...
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?
需要怎么改可以解决这个问题? 展开
/** 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?
需要怎么改可以解决这个问题? 展开
2个回答
展开全部
btt.setText("4567");
btt.layout(100, 100, 200, 200);
btt.postInvalidate();
layer.addView(btt);
你这样排版试试
btt.layout(100, 100, 200, 200);
btt.postInvalidate();
layer.addView(btt);
你这样排版试试
追问
事实上不行
追答
刚睡醒,我再帮你看看
我查了一下,我发现layout(l,t,r,b)这个方法在onCreate下使用始终都是失败的,失败的原因还有待进一步研究;但现在我推荐你使用AbsoluteLayout.LayoutParams可以达到你想要的效果。
AbsoluteLayout layer = (AbsoluteLayout)findViewById(R.id.AbsoluteLayout01);
AbsoluteLayout.LayoutParams param = new AbsoluteLayout.LayoutParams(100, 100, 200, 200);
CheckBox btt = new CheckBox(this);
btt.setText("4567");
layer.addView(btt,param);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关于楼上的onCreate()问题
我推测应该是在onCreate()之后才开始绘图,所以会导致layout()失效
解决办法是post一个Runnable,在Runnable内部layout()
同样,在构造函数中使用layout()也无效
别说layout()了,玩个getWidth()都是0
同样一个Runnable解决问题
还有,楼主用的就是AbsoluteLayout...
我推测应该是在onCreate()之后才开始绘图,所以会导致layout()失效
解决办法是post一个Runnable,在Runnable内部layout()
同样,在构造函数中使用layout()也无效
别说layout()了,玩个getWidth()都是0
同样一个Runnable解决问题
还有,楼主用的就是AbsoluteLayout...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询