Странное поведение ListView, находящегося внутри LinearLayout?
У ListView поставьте android:layout_height="0dp" и будет ожидаемый вариант. Вообще при использовании android:layout_weight у этого контрола желательно ставить android:layout_height (или соответственно android:layout_width) в 0dp. И поведение будет более предсказуемым, да и работает быстрее. А у нижнего ImageView android:layout_weight наверное совсем не нужен.
Вообще, мне кажется, android:layout_height="wrap_content" у ListView — плохая идея. Попробуйте сделать match_parent.