Android LinearLayout 给定的一组权重给出了不同的列宽
Android LinearLayout given set of weights gives different column widths
这是一个包含三列的 LinearLayout
,中间列的权重是其他两列的一半——权重是 2、1、2,而 weightSum
是 5。
我原以为中心栏的宽度是其他两个栏的一半,但事实并非如此。为什么?
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_marginTop="24dp"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="72dp"
android:weightSum="5">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="#555"
android:textSize="36dp"
android:margin="6dp"
android:text="left"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#555"
android:textSize="36dp"
android:margin="6dp"
android:text="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="#555"
android:textSize="36dp"
android:margin="6dp"
android:text="right"/>
</LinearLayout>
</LinearLayout>
更奇怪的是,我还有另一个例子,其中权重也是 2, 1, 2 并且中心列比外部列宽。这是没有意义的;这到底是怎么回事?
将文本视图的布局宽度从 "wrap_content" 设置为“0dp”,如果失败则设置为 "match_parent"
这是一个包含三列的 LinearLayout
,中间列的权重是其他两列的一半——权重是 2、1、2,而 weightSum
是 5。
我原以为中心栏的宽度是其他两个栏的一半,但事实并非如此。为什么?
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_marginTop="24dp"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="72dp"
android:weightSum="5">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="#555"
android:textSize="36dp"
android:margin="6dp"
android:text="left"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#555"
android:textSize="36dp"
android:margin="6dp"
android:text="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="#555"
android:textSize="36dp"
android:margin="6dp"
android:text="right"/>
</LinearLayout>
</LinearLayout>
更奇怪的是,我还有另一个例子,其中权重也是 2, 1, 2 并且中心列比外部列宽。这是没有意义的;这到底是怎么回事?
将文本视图的布局宽度从 "wrap_content" 设置为“0dp”,如果失败则设置为 "match_parent"