具有匹配宽度和高度的Android布局视图

时间:2014-10-22 18:01:51

标签: android android-layout

我是android的新手,并试图像这样创建一个布局:

----------
|  y  | x|
----------
|  |  |  |
----------
|     |  |
----------

标有x的框具有相等的宽度和高度,框y具有2 * x宽度。宽x + y是屏幕的全宽。所有3行都是相等的高度,其中行高与x的宽度和高度相匹配。有没有办法在xml中实现这一点?我得到的最接近的是以下xml,但行高与box x的宽度不匹配。有什么想法吗?

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

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

    <TextView
        android:id="@+id/text"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:layout_alignParentBottom="true"
        android:background="#ffffffff"
        android:text="text is here"
        />
    <TextView
        android:id="@+id/text2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:layout_alignParentBottom="true"
        android:background="#ffffffff"
        android:text="and text is here"
        />
    </LinearLayout>

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

        <TextView
            android:id="@+id/text3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_alignParentBottom="true"
            android:background="#ffffffff"
            android:text="text is here"
            />

        <TextView
            android:id="@+id/text4"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_alignParentBottom="true"
            android:background="#ffffffff"
            android:text="and text is here"
            />

        <TextView
            android:id="@+id/text5"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_alignParentBottom="true"
            android:background="#ffffffff"
            android:text="and text is here"
            />
    </LinearLayout>
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

尝试使用GridLayou:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:columnCount="4"
            android:orientation="horizontal">

    <Button
            android:layout_gravity="fill"
            android:layout_columnSpan="3"
            android:text="1"/>

    <Button android:text="2"/>

    <Button android:text="3"/>

    <Button android:text="4"/>

    <Button android:text="5"/>

    <Button android:text="6"/>

    <Button
            android:layout_gravity="fill"
            android:layout_columnSpan="3"
            android:text="7"/>

    <Button android:text="8"/>    

</GridLayout>

结果:

enter image description here