右对齐EditText - 无法使其与任何属性对齐

时间:2011-10-05 12:52:44

标签: android android-layout

我尝试了一切我可能找到的对齐这个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>

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

尝试

android:gravity="right"

这与

不同
android:layout_gravity="right"

前者会影响视图内容的定位,即文本。后者影响View在其父级内的位置。有关完整说明,请参阅Gravity and layout_gravity on Android

修改

要将EditText与其父级右侧对齐,请尝试将父级更改为RelativeLayout而不是LinearLayout,以便layout_alignParentRight属性生效

答案 2 :(得分:2)

你应该使用

android:layout_gravity="right"

因为

android:gravity ="right"

表示您正在设置视图的子项(此处为EditText - 表示文本对齐)为右对齐。要对齐EditText本身,请使用第一个。

答案 3 :(得分:1)

  

根据LinearLayout属性,子元素始终对齐一个   接着是水平或垂直,

如果您想将子元素放在父元素的右侧,那么我认为您应该使用FrameLayout

或者只是使用RelativeLayout并按照尊重的方式将两个孩子放在一起。

感谢。