您需要的是相对布局。以下是带有注释的示例:
我们以此 RelativeLayout 作为父元素。可以包裹所有内容。
在该父元素中,我们放置了两个元素,即来自您示例的按钮和编辑文本。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
我们先将按钮元素放置在右上角。这就是 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" />
现在是第二个元素,我们想要将其与前面的元素左对齐,使用具有layout_toLeftOf参数的id引用即可实现。
<EditText
android:id="@+id/EditText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/Button1"
android:hint="some_hint"
android:inputType="textCapWords" />
关闭RelativeLayout,现在渲染它,看看你已经得到了什么。
</RelativeLayout>
由于 editText 的高度较小,它无法与旁边的 Button 匹配。 解决方法是添加一些布局参数。您需要寻找的神奇参数是 layout_alignBottom 和 layout_alignParentTop。
android:layout_alignBottom="@+id/Button1"
android:layout_alignParentTop="true"
加上这两个,你就能得到正确的布局。