我在使用 Android 中的 LinearLayout 和权重时遇到问题。我想要一个水平的线性布局来容纳 2 个垂直的线性布局,由一个具有 9 个补丁背景的视图分隔,作为 2 个垂直的线性布局之间的分隔符。
像这样:(外框是外LinearLayout,中间双线是我的9个补丁分隔符。)
----------------------------
| one || three |
| two || four |
----------------------------
不断发生的是第一个内部 LinearLayout 显示以最小宽度显示其内容(好像它的宽度是wrap_content
),然后剩余的空间被拉伸以填充外部 LinearLayout 的其余部分的分隔视图占据。第二个内部 LinearLayout 根本不显示。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_weight="1" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="one" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="two" />
</LinearLayout>
<View
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/divider_vertical"
android:layout_weight="0" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_weight="1" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="three" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="four" />
</LinearLayout>
</LinearLayout>
我在这里做错了什么?我一生都无法弄清楚为什么中间视图占用了所有空间,而没有为第二个内部线性布局留下任何空间。
如果我为 9-patch 视图指定特定的 px 或 dp 宽度,我可以让它工作,但我真的希望它工作而不必指定这个宽度。这样,如果我决定更改我的 9-patch 可绘制对象,我就不必手动更新宽度。