J'ai besoin d'avoir un Edittext
à côté d'un Search button
. Le EditText
doit remplir autant de largeur que possible, le bouton doit être à droite et juste assez grand pour avoir son texte.
Il ressemble à ceci maintenant:
[EDIT TEXT][Search]
mais devrait ressembler à ceci:
[.......EDIT TEXT.......][Search]
Voici le 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>
Doit-il s'agir d'une mise en page relative?
Je suggère ce qui suit: set 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 EditText
doit être définie 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>
Comme vous l'avez dit, cela masque le bouton. Ensuite, inversez simplement la commande:
<?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, vous devrez d'abord définir le bouton et placer le EditText sur layout_toLeftOf = "@ id/search_box", qui, soit dit en passant, les deux les objets doivent 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 cela, j'ai peu réparé. il montre le bouton droit de modifier le texte et également modifier la largeur du texte autorisé à 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>