需要有关Android TableLayout对齐的帮助

时间:2010-05-30 13:28:03

标签: android tablelayout

我正在尝试使用TableLayout构建计算器布局,但最后两行未与布局的其余部分对齐。我的布局XML有问题吗?

我想要做的事情在HTML中更容易实现(<td> colspanrowspan),我应该尝试将其转换为WebView吗?

代码如下:(Screenshot

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText
        android:id="@+id/EditText01"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent" />
    <TableLayout
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:stretchColumns="*">
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <Button
                android:id="@+id/Button08"
                android:textSize="16pt"
                android:text="^"
                android:layout_weight="1"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content" />
            <Button
                android:id="@+id/Button09"
                android:text="÷"
                android:textSize="16pt"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:layout_width="wrap_content" />
            <Button
                android:id="@+id/Button10"
                android:text="×"
                android:textSize="16pt"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:layout_width="wrap_content" />
            <Button
                android:id="@+id/Button11"
                android:textSize="16pt"
                android:text="-"
                android:layout_weight="1"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content" />
        </TableRow>
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:layout_weight="1">
                <Button
                    android:id="@+id/Button01"
                    android:text="7"
                    android:textSize="16pt"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent" />
                <Button
                    android:layout_height="wrap_content"
                    android:textSize="16pt"
                    android:text="4"
                    android:id="@+id/Button05"
                    android:layout_weight="1"
                    android:layout_width="fill_parent" />
            </LinearLayout>
            <LinearLayout
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:layout_weight="1"
                android:layout_width="fill_parent">
                <Button
                    android:id="@+id/Button02"
                    android:layout_height="wrap_content"
                    android:text="8"
                    android:textSize="16pt"
                    android:layout_weight="1"
                    android:layout_width="fill_parent" />
                <Button
                    android:layout_height="wrap_content"
                    android:textSize="16pt"
                    android:text="5"
                    android:id="@+id/Button06"
                    android:layout_weight="1"
                    android:layout_width="fill_parent" />
            </LinearLayout>
            <LinearLayout
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:layout_weight="1"
                android:layout_width="fill_parent">
                <Button
                    android:id="@+id/Button03"
                    android:text="9"
                    android:textSize="16pt"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1" />
                <Button
                    android:textSize="16pt"
                    android:text="6"
                    android:id="@+id/Button07"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1" />
            </LinearLayout>
            <Button
                android:id="@+id/Button04"
                android:text="+"
                android:textSize="16pt"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"
                android:layout_weight="1" />
        </TableRow>
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:layout_weight="2">
                <LinearLayout
                    android:layout_weight="1"
                    android:orientation="horizontal"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content">
                    <Button
                        android:id="@+id/Button02"
                        android:textSize="16pt"
                        android:layout_weight="1"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:text="1" />
                    <Button
                        android:textSize="16pt"
                        android:id="@+id/Button06"
                        android:layout_weight="1"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:text="2" />
                </LinearLayout>
                <Button
                    android:id="@+id/Button01"
                    android:layout_height="wrap_content"
                    android:textSize="16pt"
                    android:layout_weight="1"
                    android:layout_width="fill_parent"
                    android:text="0" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:layout_weight="1">
                <Button
                    android:id="@+id/Button03"
                    android:textSize="16pt"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="3" />
                <Button
                    android:textSize="16pt"
                    android:id="@+id/Button07"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="." />
            </LinearLayout>
            <Button
                android:id="@+id/Button04"
                android:textSize="16pt"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"
                android:layout_weight="1"
                android:text="=" />
        </TableRow>
    </TableLayout>
</LinearLayout>

1 个答案:

答案 0 :(得分:5)

您的最终TableRow有三个单元格(即直系子女)。其余的有四个。因此,它们不会对齐,除非你在某处放置android:layout_span属性来指示哪个单元格正在吸收第四个单元格。