Android левое, центральное и правое выравнивание - PullRequest
13 голосов
/ 11 апреля 2011

Я довольно новичок в Android и пытаюсь создать пример приложения, в котором 3 элемента (2 кнопки и 1 вид текста) расположены горизонтально.Мне нужно, чтобы текст располагался по центру с двумя кнопками, выровненными влево и вправо от вида.

Например

|<Button>    <Text>     <Button>|

Благодарим Вас за помощь.

Заранее спасибо

Ответы [ 3 ]

20 голосов
/ 11 апреля 2011

РЕДАКТИРОВАТЬ: Я считаю, что это решит вашу проблему.Посмотрите код ниже.Позвольте мне знать, если это помогает!Я знаю, что это помогло мне, и я буду использовать это.Примите это как ответ, если это сработало!=)

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1">
    <TableRow>
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:text="button1" 
            android:id="@+id/button1button"></Button>
        <EditText 
            android:layout_height="wrap_content" 
            android:id="@+id/firstedittext"
            android:layout_width="wrap_content"></EditText>
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="button2" 
            android:id="@+id/button2button"></Button>
    </TableRow>
</TableLayout>

РЕДАКТИРОВАТЬ: Добавлен относительный макет, чтобы увидеть, работает ли он для вас, дайте мне знать, если он работает.Вам нужно будет отрегулировать «10px», чтобы получить желаемое расстояние.Я вижу, есть ли лучший способ сделать это, когда расстояние является более динамичным.

Вы можете сделать кнопки "alignParentLeft" и "alignParentRight", чтобы они совпали с правой и левой сторонойэкран.Тем не менее, мне все еще не удается получить текст между двумя представлениями.

Вы можете сделать это в своем XML-файле для макета.Сделайте горизонтальный макет и добавьте сначала первую кнопку, затем текстовое представление, а затем вторую кнопку.Скоро выложу xml для примера.

    <RelativeLayout 
        android:id="@+id/LinearLayout01"
        android:orientation="horizontal" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:text="button1" 
            android:layout_alignParentLeft="true"
            android:layout_marginRight="10px"
            android:id="@+id/button1button"></Button>
        <EditText 
            android:layout_height="wrap_content" 
            android:id="@+id/firstedittext"
            android:layout_toRightOf="@id/button1button"
            android:layout_marginRight="10px"
            android:layout_width="wrap_content"></EditText>
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/firstedittext"
            android:text="button2" 
            android:id="@+id/button2button"></Button>
    </RelativeLayout>
19 голосов
/ 11 апреля 2011

это сделает свое дело. Что вам нужно, это абсолютная гравитация. Этот должен работать со всеми размерами экрана Android тоже. Я не думаю, что вам нужно будет использовать какие-либо поля или отступы, они будут портить вас, когда у вас будет содержимое в ваших дочерних элементах (поля являются относительными с точки зрения их выбора, иначе: вам нужно меньшее поле, когда у вас меньше текста. ... что часто происходит во время перевода, новых функций, замен и т. д.)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="button1" 
        android:layout_alignParentLeft="true"/>
    <EditText 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:id="@+id/firstedittext"
        android:layout_centerInParent="true"/>
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button2" 
        android:layout_alignParentRight="true"/>
</RelativeLayout>
0 голосов
/ 28 июня 2015

Это мой код на LinearLayout. Надеюсь, это поможет вам!

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:text="Button1" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:ems="10"
            android:text="Chao cac ban" >

            <requestFocus />
        </EditText>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:text="Button2" />
    </LinearLayout>

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