如何获得按钮的高度以匹配另一个元素的高度?

cot*_*aws 54 height layout android match

我想在EditText旁边放一个按钮,我希望它们的高度匹配.

例如,从内置的Android浏览器:

替代文字

Go按钮与EditText字段的高度相同.我知道我可以在父布局视图中包装这两个视图,并将它们的高度设置为fill_parent,这将使它们匹配.但是,我想这样做而不必给布局一个静态大小.我希望EditText根据字体大小获取所需的任何高度,然后让它旁边的按钮匹配任何可能的高度.

这是否可以使用xml布局?

Fal*_*rri 65

大概是EditTextButton里面的一个RelativeLayout.设置按钮的布局属性alignTopalignBottomEditText.

  • 这很好用,不需要包装,非常感谢你. (2认同)
  • 如何将EditText布置在按钮的左侧?我尝试在EditText上使用layout_toLeftOf ="按钮的id",但由于Button是在xml文件中的EditText之后声明的,因此我得到一个错误,即该按钮的id不存在.我无法反转它们,因为我遇到了同样的问题,Button指的是EditText的id,如你所描述的那样.有关如何处理这个的任何建议?谢谢 (2认同)

pro*_*007 28

你需要EditText wrap_content在它的高度上做出Button正义fill_parent.你需要将它们都包裹在Layout父母中.这样他们就与同一个Layout父母联系在一起.

尝试一下,看看它是如何工作的,如果它有帮助让我知道.如果不是,我可能会给你一些可以帮助你的代码.


hcp*_*cpl 16

你想要的是相对布局.一些评论的例子如下

我们从这个RelativeLayout开始作为父亲.这可以包装所有内容.在那个父级中,我们放置了2个元素,即示例中的button和editText.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
Run Code Online (Sandbox Code Playgroud)

我们首先将Button元素放在右上角.这就是layout_alignParentRightlayout_alignParentTop的全部内容.同样,这是最大的元素,因此我们将使用wrap_content为高度和宽度包装所有内容.

<Button
    android:id="@+id/Button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="some_text" />
Run Code Online (Sandbox Code Playgroud)

现在第二个元素,我们想要与前一个元素的左侧对齐的editText,使用带有layout_toLeftOf参数的id引用来实现这一点.

<EditText
    android:id="@+id/EditText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/Button1"
    android:hint="some_hint"
    android:inputType="textCapWords" />
Run Code Online (Sandbox Code Playgroud)

关闭RelativeLayout,现在渲染它,看看你可能已经得到了什么.

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

由于editText的高度较小,因此它与旁边的Button不匹配.解决方案是添加一些布局参数.你正在寻找的神奇的是layout_alignBottomlayout_alignParentTop.

   android:layout_alignBottom="@+id/Button1"
    android:layout_alignParentTop="true"
Run Code Online (Sandbox Code Playgroud)

添加这两个,你就可以了解你的布局.

在此输入图像描述

  • @farhan patel这就是为什么我开始解释说你需要相对布局;-) (3认同)