У меня довольно сложный 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, кроме жестко заданного значения пикселя.