如何垂直分配线性布局中的权重?

时间:2012-07-24 21:40:20

标签: android button android-linearlayout compatibility

我需要在行中显示3个按钮,列中的3个按钮表示总共9个按钮 屏幕。我将android:layout_weight 0.33分配给Horizo​​ntal LinearLayout中的每个。这与每个屏幕兼容,但我还需要垂直设置重量。

简而言之,我需要创建一个带有9个按钮的屏幕,它应该与每个屏幕兼容。我怎样才能做到这一点?如果是,那么我们可以垂直设置重量吗?

2 个答案:

答案 0 :(得分:1)

创建3个单独的LinearLayouts,每行一个,并将它们封装在垂直的LinearLayout中。然后给3个LinearLayouts赋予相同的权重。

伪:

<VerticalLinearLayout>

    <HorizontalLinearLayout>
        <Button 1 /> 
        <Button 2 />
        <Button 3 />
    </HorizontalLinearLayout>

    <HorizontalLinearLayout>
        <Button 4 />
        <Button 5 />
        <Button 6 />
    </HorizontalLinearLayout>

    <HorizontalLinearLayout>
        <Button 7 />
        <Button 8 />
        <Button 9 />
    </HorizontalLinearLayout>

</VerticalLinearLayout>

除了VerticalLinearLayout外,所有内容的权重均为3。确保所有layout_widths和layout_heights都设置为fill_parent。

答案 1 :(得分:0)

可行来源

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">

        <Button
            android:id="@+id/btnSales"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Sales" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">
        <Button
            android:id="@+id/btnProduction"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Production" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">

        <Button
            android:id="@+id/btnStock"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Stock" />

    </LinearLayout>
</LinearLayout>