Android EditText和Button在同一行

Ian*_*ink 35 layout android android-edittext android-button

我需要一个Edittext旁边的Search button.本EditText应填写尽可能多的宽度尽可能的按钮应该是正确的,并正好足够大,有它的文本.

它现在看起来像这样:

[EDIT TEXT][Search]
Run Code Online (Sandbox Code Playgroud)

但应该是这样的:

[.......EDIT TEXT.......][Search]
Run Code Online (Sandbox Code Playgroud)

这是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>
Run Code Online (Sandbox Code Playgroud)

Asa*_*ahi 73

它必须是相对布局?
我建议如下:设置EditText layout_widthfill_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>
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用LinearLayout而不是Relative.我认为你需要指定layout_width不是wrap_content或fill_parent,而是0dp或其他一些可接受的最小宽度. (6认同)

Cri*_*ian 10

在这种情况下,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>
Run Code Online (Sandbox Code Playgroud)

编辑

正如你所说,它隐藏了按钮.然后,只需颠倒顺序:

<?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>
Run Code Online (Sandbox Code Playgroud)