如何获得一个button的高度来匹配另一个元素的高度?

我想把一个button旁边的EditText,我希望他们的高度匹配。

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

替代文字

Gobutton与EditText字段的高度相同。 我知道我可以在父视图中包装这两个视图,并将它们的高度设置为fill_parent,这将使它们匹配。 不过,我想这样做,而不必给布局一个静态的大小。 我宁愿EditText根据字体大小采取任何需要的高度,然后让它旁边的button匹配任何可能的高度。

这可能与一个XML布局?

您将需要在其高度上使EditText wrap_content并使Buttonfill_parent 。 您需要将它们都包装在Layout父级中。 这样他们与相同的Layout父母关联。

尝试一下,看看如何工作,如果它帮助让我知道。 如果它不,也许我可以给你一些代码,将帮助你。

据推测, EditTextButton是在一个RelativeLayout 。 将button的布局属性设置为EditText alignTopalignBottom

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

我们从这个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" > 

我们首先将Button元素放在右上angular。 这就是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" /> 

现在,第二个元素,即我们想要alignment到前一个元素左侧的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" /> 

closuresRelativeLayout,现在渲染它,看看你可能已经得到了什么。

 </RelativeLayout> 

在这里输入图像说明

由于editText的高度较小,所以它不会与它旁边的Button匹配。 解决scheme是添加更多的布局参数。 你正在寻找的神奇的是layout_alignBottomlayout_alignParentTop

  android:layout_alignBottom="@+id/Button1" android:layout_alignParentTop="true" 

添加这两个,你得到你的布局是正确的。

在这里输入图像说明