0

我有一个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

4 回答 4

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属性,所以按钮换成了它的内容,文本字段填充了行上的剩余空间。向 a 中的子项添加权重会LinearLayout告诉它占用剩余空间,权重的值决定了它将如何执行此操作。

高温高压

于 2012-05-30T19:31:00.203 回答
0

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

android:layout_weight="1"

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

android:layout_width="wrap_content"
于 2012-05-30T19:42:05.263 回答
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
于 2012-05-30T19:30:37.147 回答
0

尝试将android:layout_widthToggleButton 设置为wrap_content

于 2012-05-30T19:32:11.983 回答