Android - 布局重量填充整个屏幕

时间:2015-08-15 17:50:23

标签: android android-layout layout

我有一个Android布局的问题。对于AlerDialog,我构建了一个自定义视图:     

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="20dp"
    android:text="@string/new_game"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/random"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="1">

    <TableRow>

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players2"
            android:textColor="@color/secondary_text" />

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players4"
            android:textColor="@color/secondary_text" />

    </TableRow>

    <TableRow>

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players6"
            android:textColor="@color/secondary_text" />

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players8"
            android:textColor="@color/secondary_text" />

    </TableRow>
</TableLayout>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:text="@string/friends"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="1">

    <TableRow>

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players2"
            android:textColor="@color/secondary_text" />

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players4"
            android:textColor="@color/secondary_text" />

    </TableRow>

    <TableRow>

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players6"
            android:textColor="@color/secondary_text" />

        <Button
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/players8"
            android:textColor="@color/secondary_text" />

    </TableRow>
</TableLayout>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:text="@string/more"
    android:textAppearance="?android:attr/textAppearanceMedium" />


<Button
    style="?android:attr/borderlessButtonStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/computer"
    android:textColor="@color/secondary_text" />

不幸的是,TableLayout会产生一个Dialog,它会填满整个屏幕。所以有一些我不想要的空间。以下是一个示例:http://i.stack.imgur.com/unc9g.png

你知道我需要改变什么来消除未使用的空间吗?

由于

1 个答案:

答案 0 :(得分:0)

检查您的顶级布局是否未使用 match_parent fill_parent 作为其高度。此外,您可能需要将顶层布局的重力设置为“中心”或“ center_vertical ”,以使布局居中并使其看起来更清晰。