У меня есть RelativeLayout, который включает в себя три элемента: TableLayout вверху, который содержит некоторые элементы управления (layout_alignParentTop = true), LinearLayout внизу (layout_alignParentBottom = true), который содержит пару кнопок и ListView, который растягивается между ними (используя layout_below и layout_ над двумя элементами).Это прекрасно работает, но при определенных обстоятельствах нижний LinearLayout должен исчезнуть.Если я использую setVisibility, чтобы установить его View.GONE или установить его высоту до 0, используя setLayoutParams (), то ListView упорно отказывается изменить размер, чтобы занять освобожденное место.Я попытался вызвать requestLayout () практически для всего в иерархии, и, похоже, ничего не работает.Если я запускаю средство просмотра иерархии, я вижу, что представление исчезло / имеет layout_height, равное 0, но все равно не работает.
По иронии судьбы, после того, как средство просмотра иерархии выполнено, компоновка исправляет себя.Я думаю, что запуск пользователями средства просмотра иерархии для моих пользователей, вероятно, неприемлемо.
РЕДАКТИРОВАТЬ: Средний макет на самом деле представляет собой RelativeLayout, содержащий ListView, что может иметь значение, я собираюсь попытаться устранить его.Я опубликовал упрощенную версию своего XML, которая дает представление о том, на что я смотрю.
<RelativeLayout
android:id="@+id/main_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/top_table"
android:layout_alignParentTop="true"
android:stretchColumns="2"
android:shrinkColumns="1">
<!-- removed for simplicity -->
</TableLayout>
<RelativeLayout
android:id="@+id/main_content"
android:descendantFocusability="afterDescendants"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/title_table"
android:layout_above="@id/ad_toolbar">
<!-- removed for simplicity -->
<ListView
android:id="@+id/android:list"
android:layout_alignParentTop="true"
android:descendantFocusability="afterDescendants"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
<LinearLayout
android:id="@+id/bottom_layout"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<!-- removed for simplicity -->
</LinearLayout>
</RelativeLayout>