Как центрировать и представление Android, позволяя отойти от другого представления, с которым оно будет перекрываться? - PullRequest
2 голосов
/ 05 ноября 2010

У меня есть два вида, оба определенной ширины. Я бы хотел, чтобы они располагались по горизонтали следующим образом:

  • Вид 1 должен быть в центре.
  • Вид 2 прикреплен к правому краю дисплея.

Однако, если это расположение приведет к перекрытию видов (т. Е. Экран слишком узкий)

  • Вид 2 прикреплен к правому краю дисплея.
  • Правый край View 1 должен касаться левого края View 2

Кто-нибудь может придумать макет, который может достичь этого?

Я пытался использовать LinearLayout, но это приводит к одной из двух вещей: представление 2 сжато (с уродливым переносом текста) или представление 1 не может быть отцентрировано.

Кажется, что RelativeLayout приближается к решению, но опять-таки мне приходится выбирать между двумя плохими решениями - либо перекрываются виды, либо вид 1 не может быть отцентрирован.

1 Ответ

0 голосов
/ 30 декабря 2011

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

<ImageView
    android:id="@+id/ImageView_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/image"
    android:layout_centerHorizontal="true"
    android:contentDescription="@string/view_1" />
<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_toRightOf="@id/ImageView_1">
    <ImageView
        android:id="@+id/ImageView_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image"
        android:layout_alignParentRight="true"
        android:contentDescription="@string/view_2" />
</RelativeLayout>

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