在动态创建的复选框上设置layoutmargin
问题描述:
我正在编写一个任务管理器应用程序,它从服务器下载任务和子任务列表,并为每个项目创建一个新复选框并将其添加到线性布局(以下称为ll) 。我遇到的问题是,我无法像使用XML一样使用java来设置“layout left margin”(这是为了使子任务在屏幕上缩进一点)。我可以设置大多数其他XML属性,但cb.setMargins()不起作用(说未定义类型复选框)。设置填充当然不会达到预期的效果。在动态创建的复选框上设置layoutmargin
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);
}
任何想法或我将如何工作?
答
我想你应该使用正确的LayoutParams的复选框添加到的LinearLayout:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);
希望帮助!
答
嗨尝试......
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);
}
+0
这是如何在动态创建的复选框上添加边距的? – Oleksiy 2014-06-20 19:24:44
我见过的代码100倍只是从来没有意识到如何正确地使用它。我一直认为创建了一个新的线性布局。这工作完美,非常有帮助,谢谢。 – Satchmo 2010-10-30 14:56:42