我希望通过代码动态地在相对布局中显示3个相同的复选框.但是我只能在彼此下方显示两个复选框.我在下面给出了我的代码....我无法找出我错在哪里.
我的代码 -
RelativeLayout layout = new RelativeLayout(this);
CheckBox cb1 = new CheckBox(this);
cb1.setId(1);
cb1.setText("A");
CheckBox cb2 = new CheckBox(this);
cb2.setId(2);
cb2.setText("B");
CheckBox cb3 = new CheckBox(this);
cb3.setId(3);
cb3.setText("C");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(lp);
layout.addView(cb1);
lp.addRule(RelativeLayout.BELOW,cb1.getId());
cb2.setLayoutParams(lp);
layout.addView(cb2);
lp.addRule(RelativeLayout.BELOW,cb2.getId());
cb3.setLayoutParams(lp);
layout.addView(cb3);
Run Code Online (Sandbox Code Playgroud)
提前致谢.
罗汉沃
layout.addView(cb1);
lp.addRule(RelativeLayout.BELOW,cb1.getId());
cb2.setLayoutParams(lp);
layout.addView(cb2);
lp.addRule(RelativeLayout.BELOW,cb2.getId());
cb3.setLayoutParams(lp);
layout.addView(cb3);
Run Code Online (Sandbox Code Playgroud)
谢谢,这对我帮助很大
我猜你错了,你使用"lp"作为cb2和cb3的布局参数(你不能一次又一次地将相同的规则"RelativeLayout.BELOW"添加到相同的布局参数对象"lp").使用lp表示cb2,lp2表示cb3并像这样创建
RelativeLayout layout = new RelativeLayout(this);
CheckBox cb1 = new CheckBox(this);
cb1.setId(1);
cb1.setText("A");
CheckBox cb2 = new CheckBox(this);
cb2.setId(2);
cb2.setText("B");
CheckBox cb3 = new CheckBox(this);
cb3.setId(3);
cb3.setText("C");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(lp);
layout.addView(cb1);
lp.addRule(RelativeLayout.BELOW,cb1.getId());
cb2.setLayoutParams(lp);
layout.addView(cb2);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);//important
lp2.addRule(RelativeLayout.BELOW,cb2.getId());//important
cb3.setLayoutParams(lp2);//important
layout.addView(cb3);
Run Code Online (Sandbox Code Playgroud)
我认为这会奏效.
| 归档时间: |
|
| 查看次数: |
12332 次 |
| 最近记录: |