Android 复选框对齐
我想在一行中实现5个复选框,并在另一行下面实现3个这样的行。 附加是图像。 如何使用复选框、LinearLayout和TableRow进行设置? 所有复选框都是使用字符串数组动态创建的,而不是在布局xml文件中 我尝试了以下方法:Android 复选框对齐,android,Android,我想在一行中实现5个复选框,并在另一行下面实现3个这样的行。 附加是图像。 如何使用复选框、LinearLayout和TableRow进行设置? 所有复选框都是使用字符串数组动态创建的,而不是在布局xml文件中 我尝试了以下方法: int i = 0; while(i < 15) { TableRow tr = new TableRow(this); CheckBox[] cb = new CheckBox[5]; for (int j = 0; j < 5;
int i = 0;
while(i < 15) {
TableRow tr = new TableRow(this);
CheckBox[] cb = new CheckBox[5];
for (int j = 0; j < 5; j++,i++) {
cb[j] = new CheckBox(this); cb[j].setText(arrLetters[i]);
cb[j].setHeight(80);
cb[j].setWidth(250);
cb[j].setId(i);
tr.addView(cb[j]);
}
linearLayout.addView(tr);
inti=0;
而(i<15){
TableRow tr=新的TableRow(本);
复选框[]cb=新复选框[5];
对于(int j=0;j<5;j++,i++){
cb[j]=new复选框(this);cb[j].setText(arrLetters[i]);
cb[j].设定高度(80);
cb[j].设定宽度(250);
cb[j].setId(i);
tr.addView(cb[j]);
}
线性布局。添加视图(tr);
阿披舍克要实现这一点,你并不需要一个
表格行
。你可以像这样使用线性布局
:
LinearLayout
LinearLayout
s添加到水平布局复选框添加到每个垂直布局
复选框的权重设置为1
LinearLayout
:
LinearLayout linLayout = new LinearLayout(this);
// specifying vertical or horizontal orientation
linLayout.setOrientation(LinearLayout.VERTICAL);
// creating LayoutParams
LayoutParams linLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f);
CheckBox checkBox = new CheckBox(this);
// add other attributes like id and Params for the weight..etc
linLayout.addView(checkBox, linLayoutParam);
创建复选框
并将其动态添加到线性布局
:
LinearLayout linLayout = new LinearLayout(this);
// specifying vertical or horizontal orientation
linLayout.setOrientation(LinearLayout.VERTICAL);
// creating LayoutParams
LayoutParams linLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f);
CheckBox checkBox = new CheckBox(this);
// add other attributes like id and Params for the weight..etc
linLayout.addView(checkBox, linLayoutParam);
工作实施(示例)
导入android.graphics.Color;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.Gravity;
导入android.widget.CheckBox;
导入android.widget.LinearLayout;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
线性布局水平布局=新的线性布局(本);
水平布局。设置方向(线性布局。水平);
LinearLayout.LayoutParams LayoutParams=新的LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_父级,LinearLayout.LayoutParams.MATCH_父级,1.0f);
水平布局。设置重力(重力。中心);
setContentView(水平布局、布局参数);
int[]colors=newint[]{Color.BLUE,Color.WHITE,Color.RED,Color.GRAY,Color.GREEN};
LinearLayout[]列=新的LinearLayout[5];
对于(int i=0;i输出
JAVA代码
LinearLayout ll_Main = findViewById(R.id.root_lay); //Root Layout in XML File
/*Custom Layout*/
LinearLayout root_Layout = new LinearLayout(this);
root_Layout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams root_Params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
root_Layout.setLayoutParams(root_Params);
LinearLayout root_Base1 = new LinearLayout(this);
root_Base1.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams base_Params1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
base_Params1.setMargins(10,10,10,10);
root_Base1.setLayoutParams(base_Params1);
root_Base1.setWeightSum(5.0f);
CheckBox box1 = new CheckBox(this);
box1.setText("A");
LinearLayout.LayoutParams box1_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box1_Params.weight = 1;
box1.setLayoutParams(box1_Params);
CheckBox box2 = new CheckBox(this);
box2.setText("B");
LinearLayout.LayoutParams box2_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box2_Params.weight = 1;
box2.setLayoutParams(box1_Params);
CheckBox box3 = new CheckBox(this);
box3.setText("C");
LinearLayout.LayoutParams box3_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box3_Params.weight = 1;
box3.setLayoutParams(box1_Params);
CheckBox box4 = new CheckBox(this);
box4.setText("D");
LinearLayout.LayoutParams box4_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box4_Params.weight = 1;
box4.setLayoutParams(box1_Params);
CheckBox box5 = new CheckBox(this);
box5.setText("E");
LinearLayout.LayoutParams box5_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box5_Params.weight = 1;
box5.setLayoutParams(box1_Params);
root_Base1.addView(box1);
root_Base1.addView(box2);
root_Base1.addView(box3);
root_Base1.addView(box4);
root_Base1.addView(box5);
root_Layout.addView(root_Base1);
LinearLayout root_Base2 = new LinearLayout(this);
root_Base2.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams base_Params2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
base_Params2.setMargins(10,10,10,10);
root_Base2.setLayoutParams(base_Params2);
root_Base2.setWeightSum(5.0f);
CheckBox box6 = new CheckBox(this);
box6.setText("F");
LinearLayout.LayoutParams box6_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box6_Params.weight = 1;
box6.setLayoutParams(box6_Params);
CheckBox box7 = new CheckBox(this);
box7.setText("G");
LinearLayout.LayoutParams box7_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box7_Params.weight = 1;
box7.setLayoutParams(box7_Params);
CheckBox box8 = new CheckBox(this);
box8.setText("H");
LinearLayout.LayoutParams box8_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box8_Params.weight = 1;
box8.setLayoutParams(box8_Params);
CheckBox box9 = new CheckBox(this);
box9.setText("I");
LinearLayout.LayoutParams box9_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box9_Params.weight = 1;
box9.setLayoutParams(box9_Params);
CheckBox box10 = new CheckBox(this);
box10.setText("J");
LinearLayout.LayoutParams box10_Params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
box10_Params.weight = 1;
box10.setLayoutParams(box10_Params);
root_Base2.addView(box6);
root_Base2.addView(box7);
root_Base2.addView(box8);
root_Base2.addView(box9);
root_Base2.addView(box10);
root_Layout.addView(root_Base2);
ll_Main.addView(root_Layout);
/*Custom Layout*/
我尝试了以下操作,位无法实现I=0;而(I<15){TableRow tr=new TableRow(this);CheckBox[]cb=new CheckBox[5];for(int j=0;j<5;j++,I++){cb[j]=new CheckBox(this);cb[j].setText(arrrlets[I]);cb[j] .setHeight(80);cb[j].setWidth(250);cb[j].setId(i);tr.addView(cb[j]);}linearLayout.addView(tr);要实现什么?根据屏幕大小,每行或换行需要固定5个复选框。