Android 编程布局页边距为';行不通

Android 编程布局页边距为';行不通,android,android-layout,margins,Android,Android Layout,Margins,我一直在尝试将3个编辑文本彼此分开,中间留一小段空白。然而,我一直不成功。我在谷歌上搜索了很多,尝试了多种不同的选择,但这是我能找到的最接近我的结果 我希望“项目零件号”的第二行看起来像第一行。我能得到的最接近的结果是“项目零件号”和“Q”之间有一个小差距,但“Q”和“RRP”仍然挤在一起。为此,我删除了“Params3”线性布局。但现在我把它藏起来了,但它们都是联系在一起的 第一行是在XML布局中完成的,因此我知道我希望它看起来如何 代码如下: LinearLayout.LayoutPara

我一直在尝试将3个编辑文本彼此分开,中间留一小段空白。然而,我一直不成功。我在谷歌上搜索了很多,尝试了多种不同的选择,但这是我能找到的最接近我的结果

我希望“项目零件号”的第二行看起来像第一行。我能得到的最接近的结果是“项目零件号”和“Q”之间有一个小差距,但“Q”和“RRP”仍然挤在一起。为此,我删除了“Params3”线性布局。但现在我把它藏起来了,但它们都是联系在一起的

第一行是在XML布局中完成的,因此我知道我希望它看起来如何

代码如下:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 0.7f);
            params.setMargins(0,0,10,10);

            LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 0.15f);
            params.setMargins(10, 0, 10, 10);

            LinearLayout.LayoutParams params3 = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 0.15f);
            params.setMargins(10, 0, 0, 10);


            LinearLayout LL = new LinearLayout(Home.this);
            LinearLayout.LayoutParams LLParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
            LL.setWeightSum(1f);
            LL.setOrientation(LinearLayout.HORIZONTAL);
            LL.setLayoutParams(LLParams);

            EditText partNo = new EditText(Home.this);
            partNo.setId(View.generateViewId());
            partNo.setLayoutParams(params);
            partNo.setPadding(10,10,10,10);
            partNo.setBackgroundResource(R.drawable.textinputborder);
            partNo.setSingleLine(true);
            partNo.setHint("Item Part No.");
            LL.addView(partNo);

            EditText partqua = new EditText(Home.this);
            partqua.setId(View.generateViewId());
            partqua.setLayoutParams(params2);
            partqua.setPadding(10,10,10,10);
            partqua.setBackgroundResource(R.drawable.textinputborder);
            partqua.setSingleLine(true);
            partqua.setHint("Q");
            LL.addView(partqua);

            EditText itemPri = new EditText(Home.this);
            itemPri.setId(View.generateViewId());
            itemPri.setLayoutParams(params3);
            itemPri.setPadding(10,10,10,10);
            itemPri.setBackgroundResource(R.drawable.textinputborder);
            itemPri.setSingleLine(true);
            itemPri.setHint("RRP");
            LL.addView(itemPri);

            mLayout.addView(LL);
下面是用于第一行的XML。我已经尝试更改边距以匹配XML的边距,但不幸的是,编辑文本之间仍然没有出现间隙

<LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/items"
                    >

                    <EditText
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:padding="5dp"
                        android:layout_marginBottom="5dp"
                        android:layout_marginRight="5dp"
                        android:background="@drawable/textinputborder"
                        android:id="@+id/r1i1name"
                        android:layout_weight=".7"
                        android:hint="Item Part No."
                        android:singleLine="true"/>

                    <EditText
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:padding="5dp"
                        android:background="@drawable/textinputborder"
                        android:id="@+id/r1i1quant"
                        android:layout_weight=".15"
                        android:layout_marginRight="5dp"
                        android:hint="Q"
                        />

                    <EditText
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:padding="5dp"
                        android:background="@drawable/textinputborder"
                        android:id="@+id/r1i1price"
                        android:layout_weight=".15"
                        android:layout_marginRight="5dp"
                        android:hint="RRP"
                        />

                </LinearLayout>
newitem.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/items"
    android:layout_marginTop="5dp"
    >

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_marginRight="5dp"
        android:background="@drawable/textinputborder"
        android:id="@+id/r1i1name"
        android:layout_weight=".7"
        android:hint="Item Part No."
        android:singleLine="true"
        android:textSize="12dp"/>

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:background="@drawable/textinputborder"
        android:id="@+id/r1i1quant"
        android:layout_weight=".07"
        android:layout_marginRight="5dp"
        android:hint="Q"
        android:textSize="12dp"
        android:singleLine="true"
        />

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:background="@drawable/textinputborder"
        android:id="@+id/r1i1price"
        android:layout_weight=".2"
        android:layout_marginRight="5dp"
        android:hint="RRP"
        android:textSize="12dp"
        android:singleLine="true"
        />

</LinearLayout>


是否通过layout.xml添加第一行?如果您已经设置了xml,那么最简单可行的方法就是重用这个xml来呈现新行。使用LayoutInflator将此xml膨胀为视图,并将视图添加到主布局中。谢谢。我没有意识到它的存在。我将试一试,看看如何操作。创建一个带有垂直方向linearlayout父级的新xml布局,该布局将用于呈现主屏幕,在这个新的xml布局中,使用include标记包含上面的布局。因此将创建第一行。然后,对于每个新项目,从上面的xml创建一个新视图,并使用linearlayout parent添加到新创建的布局中。正如Rajen所说,如果可以,请重用xml,这样代码更简单、更简洁。如果您仍然希望以编程方式执行此操作,那么在调用addView()时尝试添加LayoutParam,使其看起来像“LL.addView(partqua,param2);”这样,第一行是通过layout.xml添加的吗?如果您已经设置了xml,那么最简单可行的方法就是重用这个xml来呈现新行。使用LayoutInflator将此xml膨胀为视图,并将视图添加到主布局中。谢谢。我没有意识到它的存在。我将试一试,看看如何操作。创建一个带有垂直方向linearlayout父级的新xml布局,该布局将用于呈现主屏幕,在这个新的xml布局中,使用include标记包含上面的布局。因此将创建第一行。然后,对于每个新项目,从上面的xml创建一个新视图,并使用linearlayout parent添加到新创建的布局中。正如Rajen所说,如果可以,请重用xml,这样代码更简单、更简洁。如果您仍然希望以编程方式执行此操作,那么在调用addView()时尝试添加LayoutParam,使其看起来像“LL.addView(partqua,param2);”
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/items"
    android:layout_marginTop="5dp"
    >

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_marginRight="5dp"
        android:background="@drawable/textinputborder"
        android:id="@+id/r1i1name"
        android:layout_weight=".7"
        android:hint="Item Part No."
        android:singleLine="true"
        android:textSize="12dp"/>

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:background="@drawable/textinputborder"
        android:id="@+id/r1i1quant"
        android:layout_weight=".07"
        android:layout_marginRight="5dp"
        android:hint="Q"
        android:textSize="12dp"
        android:singleLine="true"
        />

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:background="@drawable/textinputborder"
        android:id="@+id/r1i1price"
        android:layout_weight=".2"
        android:layout_marginRight="5dp"
        android:hint="RRP"
        android:textSize="12dp"
        android:singleLine="true"
        />

</LinearLayout>