Android: выравнивание меток в формах - PullRequest
1 голос
/ 17 февраля 2012

Какой самый простой способ создать макет формы, такой как (скажем) этот:

.-----------------------------------------------.
|          First Field [    (EditText)    ]     |
|     Some Other field [    (EditText)    ]     |
|        A Third Field [    (EditText)    ]     |
.-----------------------------------------------.

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

Подробности:

  1. Все это по центру в своем контейнере.

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

  3. Поля ввода имеют одинаковый размер.

Бонусные баллы, если EditTexts могут уменьшаться или увеличиваться до максимальной ширины, сохраняя макет, как указано выше: D, чтобы обрабатывать изменения ориентации без уродливых вводов большого размера.

1 Ответ

5 голосов
/ 17 февраля 2012

Попробуйте этот макет,

Вы должны всегда использовать TableLayout для такого типа дизайна, чем RelativeLayout, чтобы можно было легко и динамически добавлять любое количество строк.

<TableLayout
            android:id="@+id/mainTable"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:layout_marginRight="5dip"
            android:paddingLeft="3dip"
            android:paddingRight="3dip"
            android:shrinkColumns="1"
            android:stretchColumns="*"
            android:visibility="gone" >

            <TableRow>

                <TextView
                    style="@style/ds_20_b_darkgray"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Label1: " >
                </TextView>

                <EditText
                    android:id="@+id/editT1"
                    style="@style/ds_20_b_black"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right" >
                </EditText>
            </TableRow>

            <TableRow>

                <TextView
                    style="@style/ds_20_b_darkgray"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Label2: " >
                </TextView>

                <EditText
                    android:id="@+id/editT2"
                    style="@style/ds_20_b_black"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right" >
                </EditText>
            </TableRow>
      </TableLayout> 

Возможно, вам потребуется поместить всю компоновку таблицы в линейную или в RelativeLayout, расположить макет таблицы в центре и настроить поле, если вы хотите.

Я могу изменить его, если это не удовлетворяет вашим требованиям.

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