如何以编程方式设置Layout的边距

时间:2013-07-08 12:57:32

标签: android android-layout

我以编程方式声明了一个水平方向的linearlayout。
如何动态设置该布局的宽度,高度和边距。
我试过如下:

         leftMargin = 40;
         rightMargin = 20;
         widgetWidth = 300;
         topMargin = 5;
         bottomMargin = 5;
         widgetHeight = 100;
        LayoutParams params = new LayoutParams((int) widgetWidth, (int) widgetHeight);
        params.setMargins((int) leftMargin, (int) topMargin,
                (int) rightMargin, (int) bottomMargin);
        newHorizontalLayout = new LinearLayout(ctx);
        newHorizontalLayout.setOrientation(LinearLayout.HORIZONTAL);
        newHorizontalLayout.setLayoutParams(params);


但我得到空指针异常。 任何人都可以帮我解决他的问题。

1 个答案:

答案 0 :(得分:1)

首先,您必须导入正确的布局。这是一个表行layoutParams的例子:

设置高度和宽度:

TextView tb_row_proName;
android.widget.TableRow.LayoutParams lp_pro_name = new android.widget.TableRow.LayoutParams(android.widget.TableRow.LayoutParams.WRAP_CONTENT,
android.widget.TableRow.LayoutParams.WRAP_CONTENT);         
tb_row_proName.setLayoutParams(lp_pro_name);

设置保证金:

int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, r.getDisplayMetrics());
lp_pro_name.bottomMargin = margin;