我有一个相当复杂的 ListView,具有可变的列表项高度。在某些情况下,我需要在列表项中显示一个附加视图,该视图默认是隐藏的(View.GONE
)。通过启用它(View.VISIBLE
),列表项的高度会增加(或者至少应该如此)。
问题:
即使我将项目的根布局声明为wrap_content
,以及项目中的每个组件fill_parent
,我隐藏/显示的应该更改项目高度的视图只是在底部被切断,而不是其父级(项目布局)的高度增加以完全显示它。
是否有任何我可能错过的与 ListViews 和项目布局以及项目高度相关的问题?
更多观察结果:
出于测试目的,我现在已将列表项布局缩小为仅包含根 LinearLayout 和 ImageView。当我将 LinearLayout 高度设置为例如200dip
和 ImageView 到fill_parent
,我预计 ImageView 会增长,直到达到200dip
由其父级设置的限制。
但是,图像的高度将仅与其位图资源一样高(就好像我已将其设置为wrap_content
)并且整个列表项将具有相同的高度(即,就好像我也将其设置为wrap_content一样)。
但是,如果我将图像高度设置为例如200dip
,那么列表项的高度将会增加,项目布局也会增加。
换句话说,layout_height
列表项布局的高度被完全忽略,ImageView 上除硬编码像素值之外的任何高度值也是如此。
我设法解决了这个问题,但我不明白why.
正如我提到的,我已经设置了layout_height
列表项布局的wrap_content
(since fill_parent
考虑到 ListView 的高度无限大,在这里毫无意义)。
然而,我已经设置了layout_height
所有观点中inside该布局fill_parent
。将它们设置为时问题就消失了wrap_content
反而。
这提出了另外两个问题:
1)视图要求的语义是什么fill_parent
,当父级wraps_content
?哪种尺寸要求优先?
2)如果我如何让视图填充列表项fill_parent
显然不起作用?
谢谢你们的意见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)