выровнять по праву - PullRequest
       3

выровнять по праву

0 голосов
/ 05 октября 2011

Я перепробовал все, что мог найти, чтобы выровнять этот элемент EditText вправо, но это не так.

Что мне здесь не хватает? Как видите, я безуспешно пробовал и android:layout_alignParentRight = "true", и android:layout_gravity="right".

пс. 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 ]

5 голосов
/ 05 октября 2011

попробуйте использовать 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>
2 голосов
/ 05 октября 2011

Вы должны использовать

android:layout_gravity="right"

потому что

android:gravity ="right"

означает, что вы устанавливаете дочерние элементы представления (здесь EditText - что означает выравнивание текста) как выровненные по правому краю. Для выравнивания самого EditText используйте первый.

2 голосов
/ 05 октября 2011

Попробуйте

android:gravity="right"

Это отличается от

android:layout_gravity="right"

Первое влияет на размещение содержимого в представлении, то есть текста.Последнее влияет на положение View внутри его родителяСм. Gravity и layout_gravity на Android для полного объяснения.

EDIT

Чтобы выровнять EditText справа от его родителя, попробуйтеизменив родителя на RelativeLayout, а не LinearLayout, поэтому атрибут layout_alignParentRight может вступить в силу.

1 голос
/ 05 октября 2011

В соответствии со свойством LinearLayout дочерние элементы всегда выровнены один за другим либо по горизонтали, либо по вертикали,

Если вы хотите поместить дочерний элемент здесь справа от родительского элемента, тогда ядумаю, вы должны использовать FrameLayout.

или просто используйте RelativeLayout и поместите обоих детей согласно уважаемому друг другу.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...