2013-02-21 71 views
0

我需要佈置4行,每行包含2個並排的按鈕。棘手的部分(至少對我來說)是,按鈕需要具有相同的寬度和高度,最小和最大的寬度和高度,並在其容器中居中。我可以使用相同寬度和高度的代碼解決方案。將行按列放置到最大寬度的行和列上

我已經嘗試了以下佈局,但按鈕似乎並不尊重最大寬度,它始終與列延伸超過其允許的最大寬度。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:id="@+id/tableLayout1" 
android:stretchColumns="*"> 
<TableRow 
    android:id="@+id/tableRow1"> 
    <Button 
     android:text="Button" 
     android:layout_column="0" 
     android:id="@+id/button1" 
     android:minWidth="64" 
     android:minHeight="64" 
     android:maxWidth="128" 
     android:maxHeight="128" /> 
    <Button 
     android:text="Button" 
     android:layout_column="1" 
     android:id="@+id/button2" 
     android:minWidth="64" 
     android:minHeight="64" 
     android:maxWidth="128" 
     android:maxHeight="128" /> 
</TableRow> 
<TableRow 
    android:id="@+id/tableRow2"> 
</TableRow> 

任何幫助表示讚賞...

更新: 我想如下:

----------------------- 
| btn1 | btn2 | 
| btn3 | btn4 | 
| btn5 | btn6 | 
| btn7 | btn8 | 
----------------------- 

的想法是對的佈局擴大了100%寬度,因此列和按鈕也是如此。但按鈕只能擴展到最大寬度,並將其自身居中到列。

+0

你嘗試定義在TableRows及其要素的權重? – davidcesarino 2013-02-21 16:22:44

+0

如果您展示您需要的示例,將不勝感激 – IamStalker 2013-02-21 16:23:47

+0

是的,說明有點含糊。確保按鈕具有相同的寬度(每個按鈕'match_parent'),併爲每個按鈕賦予相同的權重,等於表格行權重中定義的總和。但我想知道確保他們是同一個高度......裁剪是否可以接受?你事先知道你是否會裁剪標籤(在這種情況下,一個簡單的定義可能會起作用)。如果不是,那麼在運行時工作可能是解決方案。這裏的問題太多了。 – davidcesarino 2013-02-21 16:27:28

回答

0

您必須嘗試利潤率,儘管我沒有完全得到您的問題。對不起:)但我想...

enter image description here

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/tableLayout1" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:divider="#fff000" 
android:stretchColumns="*" > 

<TableRow android:id="@+id/tableRow1" > 

    <Button 
     android:layout_column="0" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 

    <Button 
     android:layout_column="1" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 
</TableRow> 

<TableRow android:id="@+id/tableRow2" > 

    <Button 
     android:layout_column="0" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 

    <Button 
     android:layout_column="1" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 
</TableRow> 

<TableRow android:id="@+id/tableRow3" > 

    <Button 
     android:layout_column="0" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 

    <Button 
     android:layout_column="1" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 
</TableRow> 

<TableRow android:id="@+id/tableRow4" > 

    <Button 
     android:layout_column="0" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 

    <Button 
     android:layout_column="1" 
     android:layout_margin="20dp" 
     android:maxHeight="128dp" 
     android:maxWidth="128dp" 
     android:minHeight="64dp" 
     android:minWidth="64dp" 
     android:text="Button" /> 
</TableRow> 

+0

這個想法是爲表格擴展100%,填充不起作用,因爲所有設備上的屏幕大小不一樣 – 2013-02-21 16:33:29

+0

您有一個固定的邊距,這將不適用於不同的屏幕分辨率。 – 2013-02-21 16:40:40

+0

@JonasStawski,只有邊緣是問題,否則你想要完全相同的結果?回覆 – 2013-02-21 16:42:35