如何以编程方式在LinearLayout中添加边距/填充?

时间:2018-09-06 06:04:45

标签: android

我正在尝试将填充设置为线性布局,这样当我按“创建行”时,它们之间就会有间隙。

我尝试将echo -e "$table_body"marginTop添加到我的marginBottom中,但是当我运行代码时,布局仍然同时出现。与我设定的边距之间没有差距。

LinearLayout

enter image description here

(上图显示了通过按创建行添加的3种线性布局)

编辑:我尝试向其中添加 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/verticalLayout" android:layout_below="@id/button" android:background="@color/colorPrimaryDark" android:layout_marginTop="50dp" > ,只是为了查看是否有任何效果,并且确实如此。

marginRight

2 个答案:

答案 0 :(得分:1)

尝试此代码

    private void createRow() { //got

        horizontalLayout = new LinearLayout(this);

        LinearLayout.LayoutParams horizontalParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        horizontalLayout.setOrientation(LinearLayout.HORIZONTAL);
        horizontalParams.setMargins(15, 5, 15, 5); // LEFT, TOP, RIGHT, BOTTOM
        horizontalLayout.setLayoutParams(horizontalParams);
horizontalLayout.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorPrimaryDark));

        createSpinner();
        createCheckbox();
        createEditText();

        verticallayout.addView(horizontalLayout, horizontalParams);
    }

希望如此对您有用。 :)

答案 1 :(得分:0)

为水平布局添加边距,而不是垂直布局。检查以下代码:

private void createRow() { 

        horizontalLayout = new LinearLayout(this);

        LinearLayout.LayoutParams horizontalParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        horizontalParams.topMargin = 20;  //add margin here.

        horizontalLayout.setOrientation(LinearLayout.HORIZONTAL);
        horizontalLayout.setLayoutParams(horizontalParams);

        createSpinner();
        createCheckbox();
        createEditText();

        verticallayout.addView(horizontalLayout);
    }