统一占用的三个元素的 LinearLayout space

LinearLayout of three elements with uniform occuped space

我想创建一个带有两个按钮和一个图像视图的水平线性布局,这样所有三个元素都占据我在所有三个 elements.Still 中设置的 android:layout_weight="1" 的相等数量的 space.For我看到 space 被所有三个元素占用与最大的中间元素不同 space 然后是第三个和第一个最小的元素。

<LinearLayout
    android:id="@+id/footerpreview"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignParentBottom="true"
    android:visibility="visible"
    >
    <ImageView
        android:id="@+id/face"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:src="@drawable/face"
        android:background="#2D4487"
        android:gravity="center"
        android:padding="10dp"
        />

    <ImageView
        android:id="@+id/gyee"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:src="@drawable/gyee"
        android:background="#469AEB"
        android:gravity="center"
        android:padding="10dp"
        />
    <Button
        android:id="@+id/submit"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="Submit"
        android:textSize="18dp"
        android:textColor="#FFFFFF"
        android:gravity="center"
        android:layout_gravity="center"
        android:background="#F3931D"/>
</LinearLayout>

您需要为您的父级布局添加 1 的权重总和,并为子级分配布局权重,根据需要将这个 1 分配给它们 space。 在您的情况下,您应该为父级分配权重总和 3,为子级分配布局权重 1,让它们占据相等的 space

你只需要改变

android:layout_width="wrap_content"

android:layout_width="0dp"

对于所有三个 View,它们将被平均布置。

要使所有按钮保持相同大小,您需要将宽度属性保持为 "fill_parent"。下面是工作 xml。 weightsum 应等于您要使用的按钮数。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" 
        android:weightSum="4">

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button" />
    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button" />
    <Button
        android:id="@+id/button3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button" />
    <ImageView
    android:id="@+id/face"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:src="@drawable/ic_launcher"
    android:background="#2D4487"
    android:gravity="center"/>


    </LinearLayout>

see snapshot