程序化布局边距不起作用

时间:2015-07-20 04:18:30

标签: android android-layout margins

我一直试图将3个EditTexts彼此分开,两者之间有一点差距。但是,我没有成功。我已经搜索了很多东西并尝试了多种不同的选项,但这是我能找到的最接近我的结果。

我想要第二行"项目部件号。"看起来像第一行。我能得到的最接近的是"物品编号和#34;之间的差距。和" Q",但" Q"和" RRP"仍然被压在一起。要做到这一点,我删除" Params3"线性布局。但是现在我要保持它,但它们都在一起。

第一行是在XML Layout中完成的,所以我知道我希望它看起来如何。

enter image description here

以下是代码:

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>

0 个答案:

没有答案