2011-10-05 67 views
0

我嘗試了所有我可能找到的對齊此EditText元素 - 但它不會。右對齊EditText - 無法讓它與任何屬性對齊

我在這裏錯過了什麼?正如你所看到的,我試過android:layout_alignParentRight = "true"android:layout_gravity="right",但沒有任何運氣。

ps。 linearLayout只是使用RelativeLayout的父元素中的一個元素,但我想這並不重要。

<LinearLayout android:id="@+id/block1" 
    android:layout_width="fill_parent" 
    android:paddingLeft = "4sp" 
    android:padding = "4sp" 
    android:layout_height="25sp" 
    android:layout_marginTop = "4sp" 
    android:layout_below="@+id/Settings_phoneNumbersLbl" 
    android:orientation="horizontal"> 

    <TextView android:id="@+id/Settings_phoneNumbersT1" 
     android:textColor="#000000" 
     android:textSize="14sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/Settings_phoneNumbersT1" 
    /> 

    <EditText android:id="@+id/myRightAlignedText" 
     android:layout_width="170sp" 
     android:layout_height="wrap_content" 
     android:background="@android:drawable/editbox_background" 
     android:layout_alignParentRight = "true" 
     android:layout_gravity="right" 
    /> 

</LinearLayout> 
+1

您正在使用水平方向。它將一個接一個地添加子視圖。所以我建議你使用RelativeLayout並使用layout_alignParentRight,它會起作用。或者在權重1的中間添加一個空白視圖。 –

+0

您想要將edittext對齊或edittext的內容對齊????? – Aju

回答

5

嘗試使用RelativeLayout而不是LinearLayout。

<RelativeLayout android:id="@+id/block1" 
    android:layout_width="fill_parent" 
    android:paddingLeft = "4sp" 
    android:padding = "4sp" 
    android:layout_height="25sp" 
    android:layout_marginTop = "4sp" 
    android:layout_below="@+id/Settings_phoneNumbersLbl" 
    android:orientation="horizontal"> 

    <TextView android:id="@+id/Settings_phoneNumbersT1" 
     android:textColor="#000000" 
     android:textSize="14sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/Settings_phoneNumbersT1" 
    /> 

    <EditText android:id="@+id/myRightAlignedText" 
     android:layout_width="170sp" 
     android:layout_height="wrap_content" 
     android:background="@android:drawable/editbox_background" 
     android:layout_alignParentRight = "true" 
     android:layout_gravity="right" 
    /> 

</RelativeLayout> 
+0

..但是,然後EditText的高度收縮。所以我必須將高度設置爲固定大小 - wrap_content會使其非常薄。 – user387184

+0

您將高度設置爲RelativeLayout,只需設置wrap_content/fill_parent而不是固定尺寸爲高度 – Pratik

+0

好吧,我開始明白了,謝謝! – user387184

2

嘗試

android:gravity="right" 

這不同於

android:layout_gravity="right" 

前者影響的視圖中的內容定位,即文本。後者影響View在其父代中的位置。有關完整說明,請參閱Gravity and layout_gravity on Android

編輯

要對齊EditText其父權,嘗試改變父母是RelativeLayout而非LinearLayout,所以layout_alignParentRight屬性才能生效。

+0

我應該提到它...這個權利對齊EditText中的文本,但我需要對齊整個框。 – user387184

+0

感謝您的鏈接,很好的閱讀! – user387184

1

按的LinearLayout載體的子元素始終對準了一個又一個 無論其水平或垂直,

如果你想在這裏把孩子元素父的右側則我認爲你應該使用FrameLayout

或只是使用RelativeLayout並把兩個孩子按照尊重彼此。

謝謝。

2

您應該使用

android:layout_gravity="right" 

因爲

android:gravity ="right" 

意味着你(這裏的EditText - 這意味着文本對齊)設置視圖的孩子右對齊。要對齊EditText本身,請使用第一個。