Android 2x2按钮:内容不同时大小相同

时间:2013-04-26 11:04:49

标签: android button size

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

enter image description here

带有按钮的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”,但它仍无效。

谢谢!

2 个答案:

答案 0 :(得分:0)

添加 每个android:layout_weight="0.5"中的Button属性。

答案 1 :(得分: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);
        }

    });