0

我有一个Activity带有一个Image和一个 2x2 按钮栏 ( TableLayout)。我希望它是这样的:

在此处输入图像描述

带有按钮的TableLayout将填充图像留下的所有空间。我希望所有按钮都具有相同的大小(高度和宽度)。现在我正在使用这段代码:

 <ImageView
        android:id="@+id/myImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="30dp" />

    <TableLayout
        android:id="@+id/buttonBar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/myImage"
        android:stretchColumns="*" >

        <TableRow
            android:id="@+id/tr1"
            android:layout_width="match_parent"
            android:layout_height="0dip"
            android:layout_weight="1" >

            <Button
                android:id="@+id/button1"
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:onClick="Clicked" />

            <Button
                android:id="@+id/button2"
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:onClick="Clicked" />
        </TableRow>

        <TableRow
            android:id="@+id/tr2"
            android:layout_width="match_parent"
            android:layout_height="0dip"
            android:layout_weight="1" >

            <Button
                android:id="@+id/button3"
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:onClick="Clicked" />

            <Button
                android:id="@+id/button4"
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:onClick="Clicked" />
        </TableRow>
    </TableLayout>

如果它们Buttons具有相同的内容,则此方法有效,但如果第一个 Button 有 1 行文本,最后一个有 2 行,则第二行的高度高于第一行。我该如何解决?

我尝试在所有按钮中添加 android:layout_weight="1" ,但它仍然无法正常工作。

谢谢!

4

2 回答 2

0

只需 android:layout_weight="0.5"在每个Button.

于 2013-04-26T11:15:12.063 回答
0

我不得不从代码中解决它:

buttonBar = (TableLayout) findViewById(R.id.buttonBar);

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);

button1.post(new Runnable(){
        @Override
        public void run() {
            int height = buttonBar.getHeight();
            button1.setHeight(height/2);
            button2.setHeight(height/2);
            button3.setHeight(height/2);
            button4.setHeight(height/2);
        }

    });
于 2013-05-02T11:55:00.393 回答