weightSum
如果您打算使用权重,则需要在控件的父级上进行设置。所以,是的,把它放在一个 LinearLayout 中,并为布局提供适当的参数。另外,请记住,权重只影响额外空间,因此您要将宽度设置为 0dp,因此整个可用空间都被视为“额外”空间。最后,我认为使用整数表示重量可能会更快,但我不确定。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="4">
<EditText
android:id="@+id/phone"
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="wrap_content"
android:inputType="phone" />
</LinearLayout>
更新:
如果您也希望它居中,则在左侧和右侧包括一些间隔视图,并具有适当的权重:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="1" >
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".15" />
<EditText
android:id="@+id/phone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:inputType="phone" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".15" />
</LinearLayout>