2 votes

Comment créer une mise en page contenant une fenêtre de texte avec des boutons de chaque côté ?

Comment créer une mise en page avec un bouton de chaque côté d'une fenêtre de texte ? Voici ce que j'ai obtenu jusqu'à présent :

<?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"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/left_button"
        android:layout_width="72dip"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="left" />

    <TextView
        android:id="@+id/center_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dip"
        android:padding="10dip"
        android:text="textview" />

    <Button
        android:id="@+id/right_button"
        android:layout_width="72dip"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="right" />
</RelativeLayout>

Le problème ici est que la fenêtre de texte est centrée. Je veux que la fenêtre de texte remplisse tout l'espace restant. J'ai essayé de régler son Android:layout_width sur fill_parent et de supprimer l'Android:layout_centerHorizontal, mais il semble alors chevaucher les boutons.

5voto

Sunil Kumar Sahoo Points 21032

Étape 1

Vous devez créer le premier bouton dans la partie gauche de l'écran. android:layout_alignParentLeft="true"

Étape 2

créer un deuxième bouton à droite de l'écran mentionnant android:layout_alignParentRight="true"

Étape 3

Maintenant créez un TextView et mentionnez-le à droite du premier boutona et à gauche du deuxième bouton en mentionnant

android:layout_toRightOf="@id/left_button"
    android:layout_toLeftOf="@+id/right_button"

Code XML

<?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"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/left_button"
            android:layout_width="72dip"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:text="left" />

        <Button
            android:id="@+id/right_button"
            android:layout_width="72dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="right" />
        <TextView
            android:id="@+id/center_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dip"
            android:layout_toRightOf="@id/left_button"
            android:layout_toLeftOf="@+id/right_button"
            android:padding="10dip"
            android:text="textview" />

    </RelativeLayout>

2voto

Scott W Points 6023

Il semble que vous seriez mieux servi par un LinearLayout, quelque chose comme ceci :

<?xml version="1.0" encoding="utf-8"?>
<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/left_button"
        android:layout_width="72dip"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="left" />

    <TextView
        android:id="@+id/center_textview"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:layout_weight="1"
        android:padding="10dip"
        android:text="textview" />

    <Button
        android:id="@+id/right_button"
        android:layout_width="72dip"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="right" />
</RelativeLayout>

De cette façon, les trois vues seront toutes sur une seule ligne horizontale et la TextView occupera l'espace restant après la disposition des boutons (voir la propriété Android:layout_weight).

0voto

Chandra Sekhar Points 6512

Ces attributs peuvent résoudre votre problème

android:layout_toLeftOf
android:layout_toRightOf

0voto

dule Points 1830

Essayez avec un LinearLayout avec orientation="horizontal", par opposition à un RelativeLayout.

Si vous souhaitez utiliser RelativeLayout, vous pouvez utiliser les attributs mentionnés par Chandra (c'est-à-dire aligner la fenêtre de texte par rapport aux boutons, plutôt que par rapport au conteneur parent).

0voto

David Olsson Points 3861

Je ne suis pas sûr de ce que vous voulez, mais vous pourriez utiliser par exemple. layout_toRightOf. Un exemple qui aligne le bouton sur le parent de gauche, puis dispose les vues à droite de celle de gauche.

<?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"
android:orientation="horizontal" >

<Button
    android:id="@+id/left_button"
    android:layout_width="72dip"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:text="left" />

<TextView
    android:id="@+id/center_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dip"
    android:layout_toRightOf="@id/left_button"
    android:padding="10dip"
    android:text="textview" />

<Button
    android:id="@+id/right_button"
    android:layout_width="72dip"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/center_textview"
    android:text="right" />

</RelativeLayout>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X