2012-12-06 52 views
15

我創建了一個TableLayout,我希望每行都具有相同的高度,而不管它的內容如何。 我該怎麼做?等高行高的表格佈局

這是我的代碼。每行元素的寬度相同,但高度不相等。我究竟做錯了什麼?

<TableLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"     android:background="@color/grey" 
       android:padding="1dip" > 

       <TableRow 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:background="@color/grey" > 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:layout_marginTop="2dip" 
          android:layout_weight="1" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_make" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carMake" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:layout_gravity="center_vertical" 
          android:layout_marginLeft="1dip" 
          android:layout_weight="1" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_detail" /> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:layout_marginTop="2dip" 
          android:layout_weight="1" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_model" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carModel" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:layout_gravity="center_vertical" 
          android:layout_weight="1" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_detail" /> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:layout_marginTop="2dip" 
          android:layout_weight="1" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_version" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:layout_gravity="center_vertical" 
          android:layout_weight="1" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 
       </TableRow> 

       <TableRow 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_marginTop="1dip" 
        android:layout_weight="1" 
        android:background="@color/grey" > 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:layout_marginTop="2dip" 
          android:background="@color/white" 
           android:gravity="center_horizontal" 
          android:text="@string/car_year" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:layout_marginTop="2dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_mileage" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:layout_marginTop="2dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_engine_capacity" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 
       </TableRow> 

       <TableRow 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_marginTop="1dip" 
        android:layout_weight="1" 
        android:background="@color/grey" > 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_engine_type" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_exterior_color" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_city" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 
       </TableRow> 

       <TableRow 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_marginTop="1dip" 
        android:layout_weight="1" 
        android:background="@color/grey" > 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_transmittion" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_area" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 

         <LinearLayout 
         android:layout_width="0dip" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@color/white" 
         android:orientation="vertical" > 

         <TextView 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_marginBottom="5dip" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_registered_city" 
          android:textStyle="bold" /> 

         <TextView 
          android:id="@+id/carYear" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:background="@color/white" 
          android:gravity="center_horizontal" 
          android:text="@string/car_year" /> 
        </LinearLayout> 
       </TableRow> 
      </TableLayout> 

回答

-4

你可以在你的TableRow更改- >的LinearLayout

<LinearLayout 
        android:layout_width="0dip" 
        android:layout_height="wrap_content"  
        android:layout_weight="1" 
        android:background="@color/white" 
        android:orientation="vertical" > 
+12

這不是他問。即使這對他工作,這不是一個解決方案,如何做一個相等的高度TableView。 –

-2
<TableRow 
       android:layout_width="fill_parent" 
       android:layout_height="xxdip" // HERE define a fixed size 
+0

Nopes does not work。高度似乎是固定的。這裏有什麼問題? – AndroidDev

+0

不允許更改layout_height。它被系統固定爲始終WRAP_CONTENT – Paul

4

這裏是您的解決方案:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:weightSum="4" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="1dp" 
      android:orientation="vertical" 
      android:weightSum="4" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="1dp" 
      android:orientation="vertical" 
      android:weightSum="4" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="1dp" 
      android:orientation="vertical" 
      android:weightSum="4" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="1dp" 
      android:orientation="vertical" 
      android:weightSum="4" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="1dp" 
      android:orientation="vertical" 
      android:weightSum="4" > 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="1dp" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="#B0B0B0" /> 
     </TableRow> 
    </TableLayout> 

</LinearLayout> 

enter image description here

+0

只是管理textView或每個單元的大小aa根據您的要求..... –

+0

如何使用,如果有每列LineraLayouts – AndroidDev

+0

嘿什麼問題,請你詳細說明。 ...你想做什麼....你可以做任何與linearlayouts –

2

這裏是一個解決方案:

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

     <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:layout_gravity="fill" 
     /> 
     <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:layout_gravity="fill" 
     /> 
    </TableRow> 
    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

     <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:layout_gravity="fill" 
     /> 
     <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:layout_gravity="fill" 
     /> 
    </TableRow> 

+3

代碼只有答案通常被認爲是較差的質量。你應該考慮留下一些解釋,說明你改變了什麼,以及爲什麼它應該解決問題。 – codeMagic

2

在API 11推出,您可以設置每個TableRowTableLayoutandroid:layout_weight="1"android:measureWithLargestChild="true"

0

我剛剛遇到了這個問題,並解決了它。 事實證明,Sunny的答案爲我工作。

雖然正如評論中提到的那樣,但我可以通過閱讀它來了解它是否有效。我是一個新手,所以不能留下評論,也不能投它有用。因此我在這裏發佈。

這個想法是你讓TableRow來決定行的高度。通過將layout_height設置爲wrap_content,該行的高度取決於TextView的內容。

由於單元的邊界線是TextView的邊界,所以layout_height應該是match_parent

我希望它有助於Android新手(是的,我也是新手機)。