gpt4 book ai didi

android - LinearLayout 权重未填充父项

转载 作者:行者123 更新时间:2023-11-29 00:17:09 25 4
gpt4 key购买 nike

找了一段时间后,我还没有找到与我的问题相匹配的问题。我的问题是,我有一个 ListView,其条目遵循以下布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants" >

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
amdroid:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:orientation="vertical" >
...
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>
</LinearLayout>

我希望这会产生一个条目,其中第一个嵌套布局获得可用宽度的 1/4,第二个获得 1/2 的宽度,第三个获得 1/4 的宽度。但是,事实并非如此。相反,由于某种原因,每个嵌套布局的宽度都被换行了。

有趣的是,如果我在父 LinearLayout 中指定特定宽度而不是“match_parent”,则嵌套布局宽度会按预期服从权重。例如,以下会产生预期的结果:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="290dp"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants" >

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
amdroid:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:orientation="vertical" >
...
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>
</LinearLayout>

但很明显,指定特定宽度会忽略整个权重点。所以我的问题是:当使用“match_parent”时,为什么权重实际上没有填充父 LinearLayout,如何纠正?

哦,还有最后一个兴趣点,当“match_parent”用于父 LinearLayout 宽度时,Eclipse 中的图形布局预览会产生预期的结果。只有在实际设备上模拟或使用时,嵌套的 LinearLayouts 的内容才会宽度换行。我猜这是由于布局在 ListView 内部的使用,但谁知道呢?

谢谢

最佳答案

好吧,我现在觉得很蠢;我的怀疑是正确的:问题出在 ListView 上。

我在实例化 ListView 的布局中为 ListView 宽度指定了“wrap_content”。通过指定“match_parent”来更正 ListView 宽度会产生预期的条目布局结果,而不依赖于硬编码的 layout_width。

关于android - LinearLayout 权重未填充父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com