Как выровнять вид по правому краю и нижней части LinearLayout - PullRequest
9 голосов
/ 19 апреля 2010

Я пытаюсь расположить 1 текстовое представление (upText) выровненным по левому краю и 1 текстовое представление (downText) и изображение (изображение) как на одной линии, так и на правой стороне.

как я могу это сделать? Я попробовал это, но выровняли и текстовое представление, и изображение слева.

        <TextView
            android:id="@+id/uptext"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="left"/>
        <TextView
            android:id="@+id/downtext"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:gravity="right|bottom"/>
        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right|bottom"/>
    </LinearLayout>

Ответы [ 2 ]

23 голосов
/ 19 апреля 2010

Не используйте LinearLayout. Используйте RelativeLayout, с

  • ваш первый TextView набор с android:layout_alignParentLeft="true"
  • ваш второй TextView установлен с android:layout_alignParentBottom="true" и android:layout_alignParentRight="true"
  • нечто подобное для вашего ImageView, который в настоящее время выглядит так, как будто он будет перекрывать второй TextView
0 голосов
/ 06 июня 2017

Я понимаю, что этот пост немного устарел, но на всякий случай кто-то сталкивается с этим в поисках ясности;

Родительский линейный макет - это место, где гравитация должна быть указана для того, чтобы ребенок соответствовал желаемому поведению, поэтому в приведенных выше публикациях объясняется, что линейный макет невозможен для двух отдельных поведений, поскольку ребенок не может решить, где выровнять себя в линейном макете .

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="200dp"
android:layout_height="50dp"
android:gravity="bottom|right">

<TextView
    android:layout_width="40dp"
    android:layout_height="20dp" 
    android:text="test"/></LinearLayout>

Следует также сказать, что родительский линейный макет должен иметь определенный размер и не быть оберточным содержимым, иначе это не будет работать, поскольку обтекание содержимым подразумевает, что в макете не будет дополнительного пространства для позиционирования, поэтому, по крайней мере, ' match-parent 'для ширины и высоты необходим, а также имеет родительский элемент с большим размером, чем wrap-content для самого дочернего линейного макета.

Надеюсь, это поможет.

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