Android EditText et bouton sur la même ligne
j'ai besoin d'avoir un Edittext
à côté d'un Search button
. EditText
doit remplir autant de largeur que possible, le bouton doit être de droite et être juste assez grand pour avoir son texte.
ça ressemble à Ça maintenant:
[EDIT TEXT][Search]
mais devrait ressembler à ceci:
[.......EDIT TEXT.......][Search]
Ici XML
:
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="wrap_content">
<EditText android:id="@+id/search_box"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="type to filter"
android:inputType="text"
android:maxLines="1" />
<Button android:id="@+id/search_text"
android:layout_toRightOf="@id/search_box"
android:text="Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
4 réponses
doit-il S'agir d'une disposition Relative?
Je vous suggère les suivantes:EditText
layout_width
fill_parent
et son layout_weight
à 1, quelque chose comme ceci:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_width="fill_parent">
<EditText android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="fill_parent">
</EditText>
<Button android:text="@+id/Button01"
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
Dans ce cas, la largeur de la EditText
doit être réglé sur fill_parent
(au lieu de wrap_content
):
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="wrap_content">
<EditText android:id="@+id/search_box"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="type to filter"
android:inputType="text"
android:maxLines="1" />
<Button android:id="@+id/search_text"
android:layout_toRightOf="@id/search_box"
android:text="Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
Modifier
Comme vous l'avez dit, il cache le bouton. Ensuite, inversez l'ordre:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/RelativeLayout01" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:id="@+id/search_text"
android:layout_alignParentRight="true"
android:text="Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText android:id="@+id/search_box"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/search_text"
android:layout_centerVertical="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="type to filter"
android:inputType="text"
android:maxLines="1" />
</RelativeLayout>
je crois que la réponse de Cristian fonctionne sur les versions ultérieures du SDK, mais pour les versions antérieures, ce que vous devez faire est de définir le bouton en premier, et de placer le texte D'édition à layout_toLeftOf="@id/search_box", qui, soit dit en passant, les deux objets devraient avoir des ID différents.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/search_button"
android:text="Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
/>
<EditText
android:id="@+id/search_text"
android:layout_toLeftOf="@+id/search_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="type to filter"
android:inputType="text"
android:maxLines="1"
/>
</RelativeLayout>
essayez ceci que j'ai réparé peu. il affiche le bouton droit de modifier le texte et aussi modifier la largeur de texte autorisée à augmenter.
<?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:padding="10dip">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="instructions"/>
<EditText
android:id="@+id/entry"
android:layout_width="250dip"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="1dip"
android:text="ok" />
</RelativeLayout>