2012-03-01 59 views
3

我想將TableLayout作爲LinearLayout(它有一個背景圖標,我想覆蓋整個屏幕)內的唯一項目,並且我想將它居中並使用60%例如寬度和70%的高度。我有這個,它看起來不錯,但我不確定它會在很多設備上工作,我想知道什麼是最好的,最普遍的表達方式。Android TableLayout以LinearLayout的百分比表示

<LinearLayout 
    android:id="@+id/mainLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@drawable/mylogo" 
    android:padding="0dip" 
    android:gravity="center_vertical|center_horizontal" 
    android:baselineAligned="false" 
    > 

    <TableLayout 
     android:background="#FFFF0000" 
     android:layout_width="200dp" 
     android:layout_height="250dp" 
     android:gravity="center_vertical|center_horizontal" 
     android:stretchColumns="field"> 

    </TableLayout> 

</LinearLayout> 

我搞砸了layout_Weights,但我設法做的唯一事情是讓表消失。

感謝 斯蒂芬使用的RelativeLayout代替的LinearLayout,因爲如果只有一個線性的孩子,它會佔據其母公司的全空間

回答

0

我認爲你做的很好。您可能會在不同設備之間有所不同,但您可以爲其他屏幕密度和方向設置不同的佈局。

只有當您在LinearLayout以內有多個孩子時,才能使用layout_weight

+0

'layout_weight'對於一個孩子來說工作得很好。您只需在LinearLayout上提供'weightSum'。 – kabuko 2012-03-01 20:36:58

+0

@ kabuko,你是對的。謝謝! :) – 2012-03-01 20:53:31

1

LinearLayout只能根據一個維度的權重進行兒童大小調整,但由於您只關心調整單個視圖的大小,因此可以通過嵌套LinearLayout s來完成此操作。

<LinearLayout 
    android:id="@+id/mainLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@drawable/mylogo" 
    android:gravity="center" 
    android:weightSum="1.0"> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:orientation="horizontal" 
     android:gravity="center" 
     android:weightSum="1.0" 
     android:layout_weight="0.7"> 

     <TableLayout 
      android:background="#FFFF0000" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:gravity="center" 
      android:stretchColumns="field" 
      android:layout_weight="0.6"> 

     </TableLayout> 

    </LinearLayout> 
</LinearLayout> 

不同設備之間的佈局是否看起來不錯取決於您的內容。總的來說,我傾向於使用合理的填充/邊距,但它又依賴於內容。