3 回答
TA贡献2011条经验 获得超2个赞
一个简单的答案是在每次迭代中只添加 3 个按钮。我的情况是这是最后一次迭代,添加的按钮更少,只需添加更少:
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setOrientation(LinearLayout.VERTICAL);
int totalItems = 13;
for (int k=0; k<totalItems; k+=3)
{
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setTag(k/3);
int numberOfButtonsInRow = (k + 3 < totalItems) ? 3 : totalItems % 3;
for(int l = 0; l < numberOfButtonsInRow; l++)
{
Button b = new Button(this);
b.setTag(k + l);
b.setText("Button " + (k + l));
layout.addView(b);
}
mainLayout.addView(layout);
}
此外,我建议将内部循环的内容提取到一个单独的函数中,尽管我将其留在这里是为了使其简短。
TA贡献2051条经验 获得超10个赞
解决方案:
LinearLayout ll_rootOBJ = findViewById(R.id.ll_root);
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setOrientation(LinearLayout.VERTICAL);
for (int k=0; k<13; k++)
{
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setTag(k);
for (int i=1; i<4; i++) {
Button b = new Button(this);
b.setTag(k);
b.setText("Button");
ll.addView(b);
}
mainLayout.addView(ll);
}
ll_rootOBJ.addView(mainLayout);
这将给出你想要的。快乐编码..
这是你想要的吗?(在这张图中)
添加回答
举报