我一直在玩弄 Android 布局,试图更好地理解权重,但我偶然发现了一个我无法解释的场景。我连续三个 UI 组件。一个权重为 1 且宽度为 wrap_content 的 LinearLayout(其中有一个按钮),后跟两个宽度为 0dp 且权重为 1 的按钮。我原以为 LinearLayout 会小于按钮的宽度,但是当它是渲染后,LinearLayout 占据了一半的空间,每个按钮占据了四分之一的屏幕空间。即使第一个按钮(在 LinearLayout 内)比线性布局使用的空间小得多,也会发生这种情况。谁能解释为什么?
PS:我知道如果你给 LinearLayout 的宽度为 0dp 和重量为 1,这可以正常工作(所有等距),但我想知道为什么这种情况会导致它的结果。
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/holo_blue_bright">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="W = 1"/>
</LinearLayout>
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="W = 1"/>
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="W = 1"/>
</LinearLayout>