Как заполнить экран четырьмя кнопками с макетом таблицы? - PullRequest
4 голосов
/ 25 августа 2011

У меня есть следующий макет

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent"
    android:id="@+id/relativeLayout1" android:layout_height="fill_parent">
    <TableLayout android:id="@+id/TableLayout01" android:stretchColumns="*"
        android:layout_height="wrap_content" android:layout_width="fill_parent"
        android:layout_centerInParent="true" >
        <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <Button android:id="@+id/syncDownload" android:layout_margin="5dp" android:layout_weight="1"
                android:layout_height="fill_parent" android:layout_width="fill_parent"
                android:text="Download1" android:textColor="#EDFF99"
                android:textStyle="bold" android:background="@drawable/custom_button" />
            <Button android:id="@+id/branchesButton" android:layout_weight="1"
                android:layout_margin="5dp" android:layout_height="wrap_content"
                android:layout_width="fill_parent" android:text="Download2"
                android:textColor="#EDFF99" android:textStyle="bold"
                android:background="@drawable/custom_button" />
        </TableRow>
        <TableRow android:id="@+id/TableRow02" android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <Button android:id="@+id/attendanceButton" android:layout_weight="1"
                android:layout_margin="5dp" android:layout_height="wrap_content"
                android:layout_width="fill_parent" android:text="Upload1"
                android:textColor="#EDFF99" android:textStyle="bold"
                android:background="@drawable/custom_button" />
            <Button android:id="@+id/syncUpload" android:layout_margin="5dp" android:layout_weight="1"
                android:layout_height="wrap_content" android:layout_width="fill_parent"
                android:text="Upload2" android:textColor="#EDFF99" android:textStyle="bold"
                android:background="@drawable/custom_button" />
        </TableRow>
    </TableLayout>
</RelativeLayout>

который выходит

enter image description here

Как мне растянуть четыре кнопки, чтобы заполнить весь экран?

Ответы [ 2 ]

15 голосов
/ 25 августа 2011

Вам не нужно TableLayout для этого:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:orientation="horizontal">
        <Button
            android:layout_height="match_parent"
            android:layout_width="0dp"
            android:layout_weight="1"
            ... />
        <Button
            android:layout_height="match_parent"
            android:layout_width="0dp"
            android:layout_weight="1"
            ... />
    </LinearLayout>
    <LinearLayout
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:orientation="horizontal">
        <Button
            android:layout_height="match_parent"
            android:layout_width="0dp"
            android:layout_weight="1"
            ... />
        <Button
            android:layout_height="match_parent"
            android:layout_width="0dp"
            android:layout_weight="1"
            ... />
    </LinearLayout>
</LinearLayout>
2 голосов
/ 25 августа 2011

Измените высоту TableLayout на fill_parent, используя android:layout_height="fill_parent"

Измените высоту каждого TableRow на 0px, используя android:layout_height="0px"

и установите вес каждого1, используя android:layout_weight="1"

Наконец, не забудьте установить высоту Button на fill_parent

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TableLayout android:id="@+id/TableLayout01" android:stretchColumns="*"
        android:layout_height="fill_parent" android:layout_width="fill_parent"
        android:layout_centerInParent="true" >
        <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent"
             android:layout_height="0px"  android:layout_weight="1" >
            <Button android:layout_margin="5dp" android:layout_weight="1"
                android:layout_height="fill_parent" android:layout_width="fill_parent"
                android:text="Download1" android:textColor="#EDFF99"
                android:textStyle="bold" />
            <Button android:layout_weight="1"
                android:layout_margin="5dp" android:layout_height="fill_parent"
                android:layout_width="fill_parent" android:text="Download2"
                android:textColor="#EDFF99" android:textStyle="bold" />
        </TableRow>
        <TableRow android:layout_width="fill_parent"
            android:layout_height="0px" android:layout_weight="1" >
            <Button android:layout_weight="1"
                android:layout_margin="5dp" android:layout_height="fill_parent"
                android:layout_width="fill_parent" android:text="Upload1"
                android:textColor="#EDFF99" android:textStyle="bold"/>
            <Button android:layout_margin="5dp" android:layout_weight="1"
                android:layout_height="fill_parent" android:layout_width="fill_parent"
                android:text="Upload2" android:textColor="#EDFF99" android:textStyle="bold"/>
        </TableRow>
    </TableLayout>
</RelativeLayout>
...