0

這是一個簡單的RelativeLayout與4個控件以表格格式排列。 顯示時,confirmpassword框被剪切在底部。就好像「wrap_content」沒有正確計算孩子的身高。有任何想法嗎?Android的RelativeLayout與wrap_content太小,以適應兒童

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
    <TextView 
     android:id="@+id/passwordlabel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="34dp" 
     android:text="Password" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@id/passwordlabel" 
     android:layout_alignLeft="@+id/confirmpassword" 
     android:layout_toRightOf="@id/passwordlabel" 
     android:ems="10" 
     android:inputType="textPassword" > 

     <requestFocus /> 
    </EditText> 

    <TextView 
     android:id="@+id/confirmpasslabel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@id/passwordlabel" 
     android:layout_below="@id/passwordlabel" 
     android:text="Confirm Password" 
     android:layout_marginTop="34dp" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/confirmpassword" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@id/confirmpasslabel" 
     android:layout_toRightOf="@id/confirmpasslabel" 
     android:layout_marginLeft="15dp" 
     android:ems="10" 
     android:inputType="textPassword" /> 
</RelativeLayout> 

這是什麼樣子:

RelativeLayout in emulator

我曾嘗試添加填充和/或利潤率兩者沒有任何影響(以及在我看來是一個黑客反正底部控件)。

注意: - 我有一個類似的問題before這是一個親切的靈魂基本上通過拆分RelativeLayout解決。我不認爲這是可能的(它可能是可能是)但我擔心我要麼做的事情完全錯誤,要麼RelativeLayout有一個大規模的錯誤,似乎沒有記錄。

任何人都可以闡明這一點? TIA!

回答

1

它看起來有點像一個錯誤。我無法讓它正常工作(不用改變它),用RelativeLayout - 利潤率的東西被扔掉了。

作爲一種變通方法,嘗試TableLayout

<TableLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <TableRow android:layout_marginTop="34dp"> 

     <TextView 
      android:id="@+id/passwordlabel" 
      android:text="Password" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <EditText 
      android:id="@+id/password" 
      android:ems="10" 
      android:inputType="textPassword" > 

      <requestFocus /> 
     </EditText> 

    </TableRow> 

    <TableRow android:layout_marginTop="34dp"> 

     <TextView 
      android:id="@+id/confirmpasslabel" 
      android:text="Confirm Password" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <EditText 
      android:id="@+id/confirmpassword" 
      android:layout_marginLeft="15dp" 
      android:ems="10" 
      android:inputType="textPassword" /> 

    </TableRow> 

</TableLayout> 
+0

謝謝你肯。看起來像要走的路...但我仍然困惑爲什麼RelativeLayout不起作用。它讓我覺得它是一個非常基本的bug,奇怪的是似乎沒有提到它! – HughHughTeotl

+0

...喲,完美的工作,再次感謝。 – HughHughTeotl