具有统一占用空间的三个元素的LinearLayout

时间:2015-10-07 15:04:56

标签: android android-layout android-linearlayout android-imageview android-button

我想创建一个带有两个按钮和一个imageview的水平线性布局,这样所有三个元素都占用相同的空间。为此我在所有三个元素中都设置了android:layout_weight="1"。我还看到所有空间占用的空间三个元素不同,中间元素具有最大空间,第三个元素和第一个元素最小。

<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>

3 个答案:

答案 0 :(得分:2)

您只需要更改

android:layout_width="wrap_content"

android:layout_width="0dp"

对于您的所有三个View,它们将得到平等的布局。

答案 1 :(得分:1)

要保持所有按钮的大小相同,您需要将width属性保持为“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

答案 2 :(得分:0)

您需要为父布局添加1的权重和,并为子节点分配布局权重,将它们之间的空间分隔为您想要的空间。 在您的情况下,您应该为子项分配权重总和3和子项的布局权重1,让它们占用相等的空间