如何获得一个button的高度来匹配另一个元素的高度?
我想把一个button旁边的EditText,我希望他们的高度匹配。
例如,从内置的Android浏览器:
Gobutton与EditText字段的高度相同。 我知道我可以在父视图中包装这两个视图,并将它们的高度设置为fill_parent,这将使它们匹配。 不过,我想这样做,而不必给布局一个静态的大小。 我宁愿EditText根据字体大小采取任何需要的高度,然后让它旁边的button匹配任何可能的高度。
这可能与一个XML布局?
您将需要在其高度上使EditText
wrap_content
并使Button
只fill_parent
。 您需要将它们都包装在Layout
父级中。 这样他们与相同的Layout
父母关联。
尝试一下,看看如何工作,如果它帮助让我知道。 如果它不,也许我可以给你一些代码,将帮助你。
据推测, EditText
和Button
是在一个RelativeLayout
。 将button的布局属性设置为EditText
alignTop
和alignBottom
。
你想要的是一个相对的布局。 一些评论的例子如下
我们从这个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_alignParentRight和layout_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_alignBottom和layout_alignParentTop 。
android:layout_alignBottom="@+id/Button1" android:layout_alignParentTop="true"
添加这两个,你得到你的布局是正确的。