Проблема выравнивания макета Android - PullRequest
0 голосов
/ 14 июля 2010

Я пытаюсь найти правильный xml, чтобы определить расположение трех элементов в одной «строке» следующим образом:

  • Кнопка (выровненная по левому краю на экране) с текстом «Предыдущий»- wrap-context
  • TextView (по центру) с заголовком экрана - фиксированный размер 200px
  • Кнопка (по правому краю на экране) с текстом «Next» - wrap_content

Просто я не могу заставить его работать, если я не использую абсолютный макет, который я бы предпочел не делать.Я экспериментировал (кажется, что каждый вариант) с гравитацией / layout_gravity и встроенными LinearLayouts ...

Я думаю, вопрос в том, могу ли я выровнять один элемент по правому краю, выровнять по другому другой по левому краю и выровнять по центру другой по одному и тому же LinearLayout'line'

Спасибо .. KJ

Ответы [ 2 ]

1 голос
/ 14 июля 2010

В этом случае лучше использовать RelativeLayout следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <Button
        android:id="@+id/btn_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="Left" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/btn_left"
        android:layout_alignTop="@id/btn_left"
        android:text="In the center" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Right" />
</RelativeLayout>

Кстати ... не рекомендуется указывать точные размеры для ваших видов.Но лучше использовать относительные вещи, такие как fill_parent, wrap_layout и тому подобное.

0 голосов
/ 10 сентября 2012

Хорошо, я мог бы просто прокомментировать ответ Кристиана, но мне не хватает смысла, поэтому вот моя версия его предложения по макету:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/btn_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="Left" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Right" />

    <TextView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="In the center" />

</RelativeLayout>

Просто убрал выравнивание по кнопкам и поставил андроид: layout_centerHor horizontal = "true".

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