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