Android:带有搜索TEXT和切换按钮的线性布局在一行上

时间:2012-05-30 19:27:26

标签: android android-linearlayout

我有一个水平LinearLayout,其中包含一个文本框(搜索)和一个切换按钮。如何让搜索框填充所有宽度减去切换框的宽度?

目视: [宽搜索框] [切换]

    <LinearLayout
        android:orientation="horizontal"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout1">
        <EditText
            android:id="@+id/search_box"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="type to search titles"
            android:inputType="text"
            android:maxLines="1"
            android:visibility="gone"
            android:capitalize="none"
            android:linksClickable="false"
            android:autoLink="none"
            android:autoText="true"
            android:singleLine="true" />
        <ToggleButton
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/toggleButton1"
            android:textOff="ABC"
            android:textOn="KMs" />
    </LinearLayout

4 个答案:

答案 0 :(得分:2)

layout_weight添加EditText属性,例如:

<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout1">
    <EditText
        android:id="@+id/search_box"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="type to search titles"
        android:inputType="text"
        android:maxLines="1"
        android:visibility="gone"
        android:capitalize="none"
        android:linksClickable="false"
        android:autoLink="none"
        android:autoText="true"
        android:singleLine="true" />
    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/toggleButton1"
        android:textOff="ABC"
        android:textOn="KMs" />
</LinearLayout

我还修改了layout_width属性,因此按钮包含了它的内容,文本字段填充了该行的剩余空间。为LinearLayout中的孩子增加体重会让它占用剩余的空间,而体重的值决定了它的实现方式。

HTH

答案 1 :(得分:0)

您可以使用layout:weight

来实现这一目标
<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout1">
    <EditText
        android:id="@+id/search_box"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="type to search titles"
        android:inputType="text"
        android:maxLines="1"
        android:visibility="gone"
        android:capitalize="none"
        android:linksClickable="false"
        android:autoLink="none"
        android:autoText="true"
        android:singleLine="true" />
    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/toggleButton1"
        android:textOff="ABC"
        android:textOn="KMs" />
</LinearLayout

答案 2 :(得分:0)

尝试将ToggleButton的android:layout_width设置为wrap_content

答案 3 :(得分:0)

只需将EditText layout_width 更改为0dp即可 并添加 layout_weight 属性:

android:layout_weight="1"

并且您的ToggleButton的 layout_width 必须设置为 wrap_content

android:layout_width="wrap_content"