2012-01-24 63 views
2

我用android的TableLayout。改進Android中的佈局..也許TableLayout?

<?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"> 

    <TableLayout 
    android:id="@+id/tableLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" > 

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

     <TextView 
      android:layout_column="1" 
      android:text="@string/client" 
      android:width="150px" 
      style="@style/Infos" /> 

     <TextView 
      android:id="@+id/client" 
      android:layout_column="2" 
      android:width="200px" 
      style="@style/InfosPrincipale" /> 

     <TextView 
      android:layout_column="3" 
      android:text="@string/site" 
      android:width="150px" 
      style="@style/Infos" /> 

     <TextView 
      android:id="@+id/site" 
      android:layout_column="4" 
      android:width="200px" 
      style="@style/InfosPrincipale" /> 
    </TableRow> 

.... 

結果是具有4列確定寬度的表格。

我使用平板電腦,它很漂亮的肖像模式,但不是在風景,因爲它使用了一半的屏幕,我想它會在電話版本上變得醜陋。

我總是有相同的佈局,2個textview鏈接在一起。 (它們必須在同一行上)

Android中是否有佈局允許根據屏幕2或4列的大小顯示?或者有沒有辦法在每列上設置25%的寬度? (這將是一個良好的開端)

問候

回答

2

真的,你甚至不需要到weightSum設置爲1

設置每個單元layout_weight(原文如此!)至25日,

每個單元layout_width到0dp(沒有它不工作!)和

weightSum該行以100

更有甚者,你無法逃脫weightSum完全設置,但佈局會更慢。
至於根據方向改變表格結構,你可以只用代碼來完成。 我沒有看到你想要對你的可憐的專欄做什麼,但你可以改變他們的能見度到GONE並回到VISIBLE。你會看到很多東西仍然可見。但是weightSum不應該被設置。或者將其與列可視性一起更改。

+0

感謝你的工作 –

2

這可以用的LinearLayout和它的元素來完成。該視圖的屬性稱爲權重設置等於1.,視圖內將會有一個名爲layoutwieght的屬性,您可以將該屬性設置爲.25 25%

+1

我認爲你的意思是LinearLayout,而不是看法者 – aromero

+0

你是正確的先生。也檢查了這一點,如果這可以幫助你保持作爲tablelayout http://stackoverflow.com/questions/4326319/is-there-any-way-to-make-table-columns-equal-to-a-fraction-of - 總寬度 – L7ColWinters

2

儘量不要使用除0dp之外的絕對尺寸,如150px。

TableLayout有兩個您可能感興趣的屬性:stretchColumnsshrinkColumns

設置您的列的寬度,以0dp(如果要平均分配的可用空間)或WRAP_CONTENT(保證每列得到它的最低限度所需的空間,再加上它是剩餘的部分)。

此外,您可能希望將TableLayout的寬度設置爲FILL_PARENT。