你可以做几件不同的事情。如前所述,您应该使用 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 个视图,而 RelativeLayout 用 5 个视图完成类似的操作。LinearLayouts 很方便,但它们更复杂。随着您的布局变得越来越复杂,它们的性能将比相对布局更差,尤其是当您嵌套它们时。