web-dev-qa-db-ja.com

Android EditTextと同じ行のボタン

Search buttonの横にEdittextが必要です。 EditTextは可能な限り幅いっぱいに、ボタンは右側に、テキストを表示するのに十分な大きさである必要があります。

次のようになります。

[EDIT TEXT][Search]

ただし、次のようになります。

[.......EDIT TEXT.......][Search]

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>
35

相対レイアウトである必要がありますか?
以下をお勧めします:set EditTextlayout_widthからfill_parentとそのlayout_weight〜1、次のようなもの:

<?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>
73
Asahi

その場合、EditTextの幅はfill_parentではなく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>

編集

あなたが言ったように、それはボタンを隠します。次に、順序を逆にします。

<?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>
10
Cristian

Cristianの答えはそれ以降のバージョンのSDKでも機能すると思いますが、以前のバージョンでは、最初にButtonを定義し、EditTextをlayout_toLeftOf = "@ id/search_box"に配置する必要があります。オブジェクトには異なるIDが必要です。

<?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>
3
kcoppock

これを試してみて、少し修正しました。編集テキストの右にボタンが表示され、編集テキストの幅を増やすことができます。

<?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>
1
ud_an