在与父级末尾对齐的图标左侧设置 EditText 的宽度

Posted

技术标签:

【中文标题】在与父级末尾对齐的图标左侧设置 EditText 的宽度【英文标题】:Setting width of EditText on left of icon that is aligned to the end of a parent 【发布时间】:2022-01-08 15:56:03 【问题描述】:
<RelativeLayout
    android:layout_
    android:layout_>

    <EditText
        android:id="@+id/et_categories_search"
        style="@style/loginEditText"
        android:layout_
        android:layout_
        android:background="@drawable/login_edittext_bg"
        android:padding="@dimen/large_spacer" />

    <ImageButton
        android:id="@+id/ib_search"
        android:layout_
        android:layout_
        android:layout_alignParentEnd="true"
        android:layout_gravity="center"
        android:clickable="true"
        android:padding="@dimen/small_spacer"
        android:src="@drawable/search_icon" />

</RelativeLayout>

我有一个水平方向的 EditText 和 ImageButton(在这种情况下是一个图标)。该图标对齐到父级的末尾。有没有办法用 EditText 的宽度填充图标的左侧?我不想用layout_weight,我试过RelativeLayout、LinearLayout、ConstraintLayout都没有用。

【问题讨论】:

android:layout_toStartOf="@+id/ib_search" 添加到Edittext 我可以发誓我尝试过这个,或者我使用的是 layout_alignStart。无论哪种方式,你都很棒,因为这有效:) 【参考方案1】:

发布此问题后,我偶然发现了一个修复程序。我提到我不想使用 layout_weight,那是因为我的印象是 EditText 和 ImageButton 都需要提供属性。

我将 ImageButton 的宽度和高度保留为“wrap_content”,并将 EditText 的宽度更改为 0dp,并提供了 1 的 layout_weight 属性。令我震惊的是,它起作用了。

我非常乐意寻找其他方法来实现我的目标。

【讨论】:

以上是关于在与父级末尾对齐的图标左侧设置 EditText 的宽度的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用与父级一起声明的 std::function 在与子级一起使用时会显示错误?

表格单元格垂直对齐的默认值

均匀间隔子级,但将父级与 flex 右对齐

Bootstrap 将图标对齐到左侧,将文本对齐到顶部栏的中心

鼠标滑过,解决ul下 li下a的背景与父级Li不同宽的问题

如何设置 ImageView 对齐到父底部和 scaleType