Android Layout_weight

时间:2014-12-15 04:17:02

标签: android android-layout

我想代表一张桌子。我在LinearLayout中有一个具有垂直方向的父容器,每一行都由一个具有水平方向&的LinearLayout进一步表示。重量为100.我使用了重量来确保左侧立柱和右侧立柱达到屏幕宽度的50%。但是右侧的列没有针对某些行正确对齐。如何在表格中正确对齐它们?

以下是

所示的每个LinearLayout行的代码显示方式
<LinearLayout
    android:orientation="horizontal"
    android:weightSum="100"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_weight="50"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="BOM ID"
        android:id="@+id/tvBOMID" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/etBOMID"
        android:hint="BOM ID"
        android:layout_weight="50" />

</LinearLayout>

enter image description here

4 个答案:

答案 0 :(得分:2)

简单地给予TextView,EditText 1-1等权重并将宽度设置为0dp:

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="BOM ID"
        android:id="@+id/tvBOMID" />

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/etBOMID"
        android:hint="BOM ID"
        android:layout_weight="1" />

</LinearLayout>

答案 1 :(得分:1)

要解决此问题,请使用权重将layout_width更改为0dp,其他一切看起来都很好。每次使用重量时,将宽度或高度(以重量决定)设置为0dp。

答案 2 :(得分:1)

在Android中我们有非常好的重量概念。

我们仅在LinearLayout中给予权重。

我们以简单的方式给予布局水平和垂直平均重量,我们给出了重量布局高度和宽度。

重量你想要给出一个0dp的高度或宽度你想给出一个重量。如果你不给0dp而不是它对布局的影响。

明智的重量......

给1 1个权重,因此textview占50%,edittext占父布局总宽度的50%。

给予1 2权重,因此textview占33.33%,editext占父布局总宽度的66.66%。

给予1 3权重,因此textview占25%,edittext占父布局总宽度的75%。

身高明显的体重......

给1 1个权重,因此textview占50%,edittext占父布局总高度的50%。

给予1 2权重,因此textview占33.33%,editext总占父布局高度66.66%。

给予1 3权重,因此textview占25%,edittext占父布局总高度的75%。

在您的情况下

您希望宽度为0dp且权重为1。

    **You just add this code**

    android:layout_weight="1"
    android:layout_width="0dp"

在代码

下面
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="BOM ID"
        android:id="@+id/tvBOMID" />

    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/etBOMID"
        android:hint="BOM ID"
        android:layout_weight="1" />

</LinearLayout>

答案 3 :(得分:-2)

只是改变:

android:layout_width="wrap_content"

到:

android:layout_width="fill_parent"
在textview和edittext中