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