我正在编写一个任务管理器应用程序,它从服务器下载任务和子任务列表,并为每个项目创建一个新的复选框,并将其添加到线性布局(下面称为ll)。我遇到的问题是我无法使用Java设置“布局边距”,就像我可以使用XML一样(这是为了使子任务在屏幕上稍微缩进它们)。我可以设置大多数其他xml属性,但cb.setMargins()不起作用(对于类型复选框,未定义)。设置填充当然不会达到预期的效果。
for(int i=0;i<tasks.size();i++) {
CheckBox cb = new CheckBox(this);
cb.setText(tasks.get(i).subtask_desc);
cb.setButtonDrawable(R.drawable.checkbox_xml);
ll.addView(cb);
}
任何想法或我将如何解决这个问题?
答案 0 :(得分:7)
我认为您应该使用正确的LayoutParams将复选框添加到LinearLayout:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);
希望有所帮助!
答案 1 :(得分:1)
嗨试试这个......
private LinearLayyout ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;;
CheckBox cb;
for(int i = 0; i < 10; i++) {
cb = new CheckBox(this);
cb.setText(categoryListArray[i]);
ll.addView(cb, ll);
}