2014-01-30 93 views
0

我在我的應用程序中有一個TableLayout的以下問題。 TableRows有時會有完全不同的高度,儘管代碼是相同的,內容也是一樣的。這裏是我的代碼片段(切出的其他行),並更好地理解兩個畫面(粉紅色是textViews的大小):奇怪的TableRow高度behavoir與不同的高度

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:shrinkColumns="*" 
    android:stretchColumns="*" > 

    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#F0FFF0" 
     android:gravity="center_vertical" 
     android:paddingBottom="3dp" 
     android:paddingTop="3dp" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="#FF00FF" 
      android:gravity="right" 
      android:paddingRight="3dp" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.25" 
      android:background="#FF00FF" 
      android:ems="10" 
      android:gravity="center" 
      android:imeOptions="actionNext" 
      android:inputType="numberSigned" 
      android:maxLength="1" 
      android:singleLine="true" > 

     </EditText> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="#FF00FF" 
      android:gravity="left" 
      android:paddingLeft="3dp" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

    </TableRow>  

    <TableRow 
     android:id="@+id/tableRow5" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#E0EEE0" 
     android:gravity="center_vertical" 
     android:paddingBottom="3dp" 
     android:paddingTop="3dp" > 

     <TextView 
      android:id="@+id/textView8" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="#FF00FF" 
      android:gravity="right" 
      android:paddingRight="3dp" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <EditText 
      android:id="@+id/editText4" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.25" 
      android:background="#FF00FF" 
      android:ems="10" 
      android:gravity="center" 
      android:imeOptions="actionNext" 
      android:inputType="numberSigned" 
      android:maxLength="1" 
      android:singleLine="true" > 

     </EditText> 

     <TextView 
      android:id="@+id/textView9" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="#FF00FF" 
      android:gravity="left" 
      android:paddingLeft="3dp" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

    </TableRow>  
    <TableRow 
    android:id="@+id/tableRow10" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#F0FFF0" 
    android:gravity="center_vertical" 
    android:paddingBottom="3dp" 
    android:paddingTop="3dp" > 

    <TextView 
     android:id="@+id/textView18" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="#FF00FF" 
     android:gravity="right" 
     android:paddingRight="3dp" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    <EditText 
     android:id="@+id/editText9" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.25" 
     android:background="#FF00FF" 
     android:ems="10" 
     android:gravity="center" 
     android:imeOptions="actionNext" 
     android:inputType="numberSigned" 
     android:maxLength="1" 
     android:singleLine="true" > 

    </EditText> 

    <TextView 
     android:id="@+id/textView19" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="#FF00FF" 
     android:gravity="left" 
     android:paddingLeft="3dp" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

</TableRow> 
</TableLayout> 
</ScrollView> 

enter image description here enter image description here

你可以在看第一張圖片tableRow2填充了兩行textView並且有一個非常小的填充(紅色hachures),tableRow5也只有一行內容和tableRow10,但tableRow10的高度要高得多(藍色方括號)。

在第二張圖片中,您看到完全相同的佈局,只是改變了排序條目並且行高度完全不同。爲什麼會發生這種情況,我無法得到任何模式,我正在改變條目的順序,有時它會變大,有時變小。

回答

0

好吧,改變ScrollViews屬性從

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

似乎解決了這個問題。我只是不明白爲什麼...... :)