我一直试图将3个EditTexts彼此分开,两者之间有一点差距。但是,我没有成功。我已经搜索了很多东西并尝试了多种不同的选项,但这是我能找到的最接近我的结果。
我想要第二行"项目部件号。"看起来像第一行。我能得到的最接近的是"物品编号和#34;之间的差距。和" Q",但" Q"和" RRP"仍然被压在一起。要做到这一点,我删除" Params3"线性布局。但是现在我要保持它,但它们都在一起。
第一行是在XML Layout中完成的,所以我知道我希望它看起来如何。
以下是代码:
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>
编辑:解决了
感谢rajen-raiyarela告诉我有关LayoutInflator的信息。
Home.java
plusItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ViewGroup parent = (ViewGroup) findViewById(R.id.room1);
view = LayoutInflater.from(Home.this).inflate(R.layout.newitem, parent, false);
view.generateViewId();
parent.addView(view);
}
});
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>