android - 设置Textview + Edittext + Button

标签 android android-layout button

我想在同一行中放置一个 TextView、Edittext 和一个按钮,但我遇到的问题是按钮没有正确地向左对齐,并且在小屏幕中 edittext 会填满整个内容。

小屏幕: enter image description here

大屏幕:enter image description here

我的编码如下:

<LinearLayout
        android:id="@+id/layout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/address_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/address_textview"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/address_edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="@string/address_textview_hint"
            android:imeActionLabel="@string/search_button"
            android:imeOptions="actionDone"
            android:inputType="textCapWords"
            android:nextFocusDown="@id/address_edittext"
            android:nextFocusUp="@id/address_edittext"
            android:singleLine="true" />

        <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="right" >
        <Button
            android:id="@+id/go_button"
            android:layout_width="50dp"
            android:layout_height="35dp"
            android:text="Go" />
                </RelativeLayout>

    </LinearLayout>

最佳答案

为您的 EditText 应用一个权重,这样它将占用尽可能多的空间,同时让其他两个元素执行正常的 wrap_content。为此,删除相关布局容器,然后将 EditText 宽度更改为“0dp”,并将其 layout_weight 设置为“1”,如下所示:

<LinearLayout
    android:id="@+id/layout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/address_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/address_textview"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/address_edittext"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:hint="@string/address_textview_hint"
        android:imeActionLabel="@string/search_button"
        android:imeOptions="actionDone"
        android:inputType="textCapWords"
        android:nextFocusDown="@id/address_edittext"
        android:nextFocusUp="@id/address_edittext"
        android:singleLine="true" />

    <Button
        android:id="@+id/go_button"
        android:layout_width="50dp"
        android:layout_height="35dp"
        android:text="Go" />

</LinearLayout>

关于android - 设置Textview + Edittext + Button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19868707/

相关文章:

javascript - 如何从另一个功能更改按钮?

javascript - 使用 jquery 在表的单元格列内创建引导按钮

android布局对齐textview和button

c# - 使用 WCF (IIS 7.5) 从数据库获取值时出现系统错误

android - 汽车动画旋转的轮子

android - 在使用 Button 调试 NullPointerException 时需要帮助

java - TableLayout 在调整文本大小时调整 View 大小,即使它是固定大小的

android - 如何在相对布局中添加滚动条?

android - 使用 cameraX 的 PreviewView 捕获叠加层

Android SDK 构建工具版本 (23.0.1) 对于项目 ':app' 来说太低了。最低要求是 25.0.0