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"