线性布局如何处理空视图?

How does Linear Layout behaves with empty views?

在线性布局中,嵌套小部件 horizontaly/vertically 并根据它们 width/height.
排列 我的问题如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ffff0000"
            />
        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ff00ff00"
            />

    </LinearLayout>
    
</LinearLayout>  

为什么我只看到第一个视图?我很期待,因为它们 wrap_content 要么都显示,要么 none。但我在设计预览中看到:

此外,如果我在第一个 View 中添加 android:layout_weight="2",在第二个中添加 android:layout_weight="1",即使我添加 [,第二个视图也会获得 space 的 2/3 =25=]=3 在封闭布局中

您只看到一个视图,因为您没有为视图指定数字宽度。 因此,第一个视图占据了整个屏幕,而另一个视图则根本看不到 - 它在右侧,紧挨着红色视图。

如果您希望它们都具有相同的宽度,只需赋予它们相同的权重,这样它们就会彼此相等并且适合屏幕的高度或宽度,具体取决于布局方向容器。

来自文档:

android:weightSum - Defines the maximum weight sum. If unspecified, the sum is computed by adding the layout_weight of all of the children.