我正在编写一个任务管理器应用程序,它从服务器下载任务和子任务列表,并为每个项目创建一个新复选框并将其添加到线性布局(下面称为 ll)。我遇到的问题是,我无法像使用 XML 一样使用 Java 设置“左布局边距”(这是为了让子任务在屏幕上缩进一些)。我可以设置大多数其他 xml 属性,但 cb.setMargins() 不起作用(说未定义类型复选框)。设置padding当然达不到想要的效果。

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);

希望有帮助!

关于android - 在动态创建的复选框上设置 layoutmargin,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4059059/

10-11 22:15
查看更多