gpt4 book ai didi

android - LinearLayout 保持宽度为 0(尽管显式设置,或隐式设置权重)

转载 作者:行者123 更新时间:2023-11-30 04:41:34 29 4
gpt4 key购买 nike

使用下面的布局(较大布局的一部分),容器布局的可见性设置为“消失”,直到单击按钮。单击按钮时,如果 container_ll 不可见,则将其设置为可见,并将自定义 View 添加到 reminderViews_ll 容器。

正在添加 View ,单击按钮时可以看到 container_ll View 。下面是点击按钮后各个view的宽高。

container_ll         width 420, height 96.  
lineDivider_view width 420, height 2 (as expected)
reminder_img width 36, height 36 (as expected, hdpi phone)
reminderViews_ll width 0, height 96 (argh)


<LinearLayout
android:id="@+id/container_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
>

<View style="@style/lineDivider_view" />

<ImageView
android:id="@+id/reminder_img"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_horizontal"
/>

<!-- Stick the actual Reminder TVs + Del buttons in here dynamically -->
<LinearLayout
android:id="@+id/reminderViews_ll"
android:orientation="vertical"
android:gravity="center"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
/>
</LinearLayout>

对于从这里去哪里,我有点不知所措。我在考虑使布局无效,强制它在使 View 可见后再次绘制,但这对我来说从来没有用过(貌似),如果 reminderViews_ll 可以达到 96 的高度,那么它什么时候出现就不是问题了计算 LinearLayout 的尺寸。

我希望你喜欢阅读这个问题,就像我写它一样。一如既往地感谢任何指点。

最佳答案

你显示的数字对我来说是正确的。

容器宽度为420。其他设置为fill_parent 或wrap_content 的 View 占据了所有空间(实际上更多)。线性布局然后将剩余空间分配给任何加权 View 。由于没有空间可分配,因此您得到零。

container_ll         width 420  
lineDivider_view - 420
reminder_img - 36
= -36

so this makes sense
reminderViews_ll width 0

根本没有空间给它。

为什么要在水平 View 中使用水平线分隔符?

关于android - LinearLayout 保持宽度为 0(尽管显式设置,或隐式设置权重),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890180/

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