I have a rather complex ListView, with variable list item heights. Under certain conditions, I need to display an additional view in a list item, which is hidden by default (View.GONE
). By enabling it (View.VISIBLE
), the list item grows in height (or at least it's supposed to).
The problem:
Even though I declare the item's root layout to wrap_content
, and each component in the item to fill_parent
, the view I hide/show which is supposed to change the item's height is simply cut off at the bottom instead of its parent (the item layout) growing in height to fully display it.
Are there any gotchas related to ListViews and item layouts and item height which I may have missed?
Some more observations:
For testing purposes, I have now reduced the list item layout to just contain the root LinearLayout and an ImageView. When I set the LinearLayout height to e.g. 200dip
and the ImageView to fill_parent
, I would have expected the ImageView to grow until it hits the 200dip
limit set by its parent.
However, the image will instead be only ever as tall as its bitmap resource (as if I had set it to wrap_content
) and the whole list item will be of the same height (i.e. as if I had set it to wrap_content, too).
If however, I set the image height to e.g. 200dip
, then the list item will grow in height, and so will the item layout.
In other words, the layout_height
of the list item layout is completely ignored, and so is any height value on ImageView other than a hard-coded pixel value.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…