您可以做一些不同的事情。 如前所述, 您应该使用 dp 而不是像素来布局。 使用 dp 允许您的观点根据屏幕的物理大小而不是分辨率来缩放大小 。
此处请举一个例子,指定每个标签右侧显示的编辑框,并选择屏幕的剩余部分:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/name_label"
android:layout_width="100dp"
android:layout_height="50dp"
android:text="Name:" />
<TextView
android:id="@+id/phone_label"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_below="@id/name_label"
android:text="Phone:" />
<EditText
android:id="@+id/name_text"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_toRightOf="@id/name_label" />
<EditText
android:id="@+id/phone_text"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_toRightOf="@id/phone_label"
android:layout_below="@id/name_text" />
</RelativeLayout>
这里举了一个使用重量的LinearLayout的例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="Name:"
android:layout_weight="1"/>
<EditText
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="5"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="Phone:"
android:layout_weight="1"/>
<EditText
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="5"/>
</LinearLayout>
</LinearLayout>
请注意, LinearLayout 有 7 个视图, 而相对Layout 有 5 个视图完成类似 。 LinearLayout 兔子有 5 个视图。 线性Layout 兔子有 5 个视图, 但它们更复杂 。 随着您的布局变得更加复杂, 它们的表现会比相对 Layout 差, 特别是当您嵌入它们时 。