Как нарисовать элементы справа налево? - PullRequest
0 голосов
/ 16 августа 2011

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

Этот xml напечатал мне кнопку в левой части экрана, но ничего раньше: /

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
>

    <Button 
        android:id="@+id/index_bouton_recherche"
        android:layout_width="45px"
        android:layout_height="45px"
        android:background="@drawable/loupe"
    />

    <EditText 
        android:id="@+id/index_champs_recherche"
        android:layout_width ="fill_parent"
        android:layout_height="wrap_content"
        android:maxLines="1" 
        android:layout_toLeftOf="@id/index_bouton_recherche"
    />

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Когда мне нужно это сделать, я использую атрибут LinearLayout и layout_weight xml. Этот XML решит вашу проблему:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
>
    <EditText 
        android:id="@+id/index_champs_recherche"
        android:layout_width ="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:maxLines="1" 
    />
    <Button 
        android:id="@+id/index_bouton_recherche"
        android:layout_width="45px"
        android:layout_height="45px"
        android:background="@drawable/loupe"
    />
</LinearLayout>

layout_width="0dp" означает, что изначально для представления не требуется места. Кнопка имеет значение wrap_content, поэтому она требует только своего места. Атрибут layout_weight применяется после, и он разделяет оставшееся пространство в макете (ширина для ориентации = горизонтальная, высота для вертикальной). Вес представления по умолчанию равен 0, поэтому при значении 1 EditText займет 100% оставшегося пространства.

1 голос
/ 16 августа 2011

попробуйте

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
>

    <Button 
        android:id="@+id/index_bouton_recherche"
        android:layout_width="45px"
        android:layout_height="45px"
        android:background="@drawable/loupe"
    />

    <EditText 
        android:id="@+id/index_champs_recherche"
        android:layout_width ="fill_parent"
        android:layout_height="wrap_content"
        android:maxLines="1" 
        android:layout_toLeftOf="@id/index_bouton_recherche"
        android:layout_weight="1"
    />
</LinearLayout>
...