线性布局权重总和未强制执行

时间:2015-04-04 14:11:38

标签: android android-layout android-studio

我已经创建了一个LinearLayout来包含几行按钮。要设置行中可以有的最大按钮数,我使用了每个按钮6的重量和1的布局权重,所以每行可以有6个。但是,现在当我添加更多按钮时,它们会被挤进同一行。任何人都知道它为什么不看布局重量? 下面是我的布局代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:weightSum="6"
android:clickable="false"
android:orientation="horizontal">


<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/eng1"
    android:id="@+id/eng1"
    android:background="@color/red"
    android:textStyle="bold"
    android:layout_weight="1"
    android:layout_margin="10dp"
    android:clickable="true"
    android:onClick="displayMessage"
    android:textSize="20dp" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/cowl"
    android:id="@+id/cowl"
    android:textSize="20dp"
    android:background="@color/red"
    android:textStyle="bold"
    android:clickable="true"
    android:onClick="displayMessage"
    android:layout_margin="10dp"
    android:layout_weight="1" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/DIFFNG"
    android:id="@+id/diffng"
    android:textSize="20dp"
    android:background="@color/red"
    android:textStyle="bold"
    android:clickable="true"
    android:onClick="displayMessage"
    android:layout_margin="10dp"
    android:layout_weight="1" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/elec"
    android:id="@+id/elec"
    android:background="@color/red"
    android:textStyle="bold"
    android:clickable="true"
    android:textSize="20dp"
    android:onClick="displayMessage"
    android:layout_margin="10dp"
    android:layout_weight="1" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/battt"
    android:id="@+id/battt"
    android:background="@color/red"
    android:textStyle="bold"
    android:clickable="true"
    android:textSize="20dp"
    android:onClick="displayMessage"
    android:layout_margin="10dp"
    android:layout_weight="1" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/eng2"
    android:id="@+id/eng2"
    android:background="@color/red"
    android:textStyle="bold"
    android:clickable="true"
    android:textSize="20dp"
    android:onClick="displayMessage"
    android:layout_margin="10dp"
    android:layout_weight="1" />


</LinearLayout>

1 个答案:

答案 0 :(得分:1)

由于您已将weight_sum设置为6,因此该布局中只能有6个子子项。如果你添加超过6,他们将被挤压。

制作此参数

 android:layout_width="wrap_content"

在所有按钮中

    android:layout_width="0dp"

如果您在水平布局中使用权重,则需要将子项的宽度设置为0dp。

LinearLayout的高度为wrap_content。