【问题标题】:Set a layoutmargin on a dynamically created checkbox在动态创建的复选框上设置 layoutmargin
【发布时间】:2010-10-30 14:15:20
【问题描述】:

我正在编写一个任务管理器应用程序,它从服务器下载任务和子任务列表,并为每个项目创建一个新复选框并将其添加到线性布局(下面称为 ll)。我遇到的问题是我无法像使用 XML 那样使用 java 设置“左布局边距”(这是为了让子任务在屏幕上缩进一点)。我可以设置大多数其他 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);
    }

有什么想法或我将如何解决这个问题?

【问题讨论】:

    标签: android android-layout android-checkbox


    【解决方案1】:

    我认为您应该使用正确的 LayoutParams 将复选框添加到 LinearLayout:

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    params.leftMargin = 123;
    li.addView(cb, params);
    

    希望有帮助!

    【讨论】:

    • 我已经看过该代码 100 次,但从未意识到如何正确使用它。我一直认为这创造了一个新的线性布局。这非常有效,非常有帮助,谢谢。
    【解决方案2】:

    嗨试试这个...

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

    【讨论】:

    • 如何在动态创建的复选框上添加边距?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2016-06-16
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多