2

我正在为我的 Android 应用程序开发基于图标的主菜单(参见附图 - Google+)。显而易见的布局是 TableLayout。

谷歌+安卓应用

但是,我不知道也找不到有关如何将表格本身和内部图标居中的信息。我想出的代码如下(结果图像在代码下方):

<TableLayout android:layout_width="fill_parent" android:id="@+id/tableLayout1" android:layout_height="fill_parent" android:stretchColumns="1" android:padding="20dp">
    <TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="20dp"  >
        <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"></Button>
        <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"></Button>
    </TableRow>
    <TableRow android:id="@+id/tableRow2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="20dp" >
        <Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" ></Button>
        <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"></Button>
    </TableRow>
</TableLayout>

表格布局

我将不胜感激任何提示和想法。

4

2 回答 2

2

我刚刚制作了一个您需要的程序主菜单。它与密度无关,但我把它放在滚动视图上只是为了确保它在任何地方都可用。如果您愿意,您可以将按钮更改为 imagebuttons,这样您就可以获得所需的菜单。

对代码的一点解释:

  • 每行在左侧和右侧都有一个文本视图,作为占位符。tablelayout'a android:stretchColumns="0,3" 拉伸文本视图以填充按钮旁边的空间。
  • 您可以更改边距,使按钮彼此更近或更远。

现在这里是xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TableLayout android:layout_gravity="center" 
        android:layout_width="match_parent" android:layout_height="match_parent"
        android:stretchColumns="0,3">
        <TableRow android:layout_gravity="center">
            <TextView />
            <Button android:text="1" android:layout_margin="15dp"
                android:layout_gravity="center_vertical"
                android:width="100dip" android:height="100dip" />
            <Button android:layout_gravity="center_vertical" 
                android:text="2" android:layout_margin="15dp"
                android:width="100dip" android:height="100dip" />
            <TextView />
        </TableRow>

        <TableRow android:layout_gravity="center">
            <TextView />
            <Button android:text="3"  android:layout_margin="15dp"
                android:layout_gravity="center_vertical"
                android:width="100dip" android:height="100dip" />
            <Button android:text="4"  android:layout_margin="15dp"
                android:layout_gravity="center_vertical"
                android:width="100dip" android:height="100dip" />
            <TextView />
        </TableRow>

        <TableRow android:layout_gravity="center">
            <TextView />
                <Button android:text="5"  android:layout_margin="15dp"
                android:layout_gravity="center_vertical"
                android:width="100dip" android:height="100dip" />
            <Button android:text="6"  android:layout_margin="15dp"
                android:layout_gravity="center_vertical"
                android:width="100dip" android:height="100dip" />
            <TextView />
        </TableRow>
    </TableLayout>
</ScrollView>

这就是它的样子: http ://db.tt/yQ5NFhmk

于 2012-01-15T11:55:03.203 回答
0

android:gravity="center"TableLayout规范中尝试。这会将表格行放置在屏幕的中央。

还可以尝试添加android:gravity="center"用于TableRow将按钮放置在表格行的中心。

于 2011-10-16T23:48:49.220 回答