몇 가지 컨트롤 (layout_alignParentTop = true)이있는 TableLayout, 아래쪽에있는 LinearLayout (layout_alignParentBottom = true)의 3 가지 요소가 포함 된 RelativeLayout이 있습니다. 그들 사이에 뻗어있는 ListView (두 요소를 layout_below와 layout_above를 사용하여). 잘 작동하지만 특정 상황에서는 LinearLayout의 하단이 사라져야합니다. setVisibility를 사용하여 View.GONE으로 설정하거나 setLayoutParams()를 사용하여 높이를 0으로 설정하면 ListView는 새로 해제 된 공간을 차지하도록 크기를 조정하는 것을 완고하게 거부합니다. 기본적으로 계층 구조의 모든 것에 requestLayout()을 호출 해 보았습니다. 아무 것도 작동하지 않는 것 같습니다. 계층 뷰어를 실행하면 뷰가 사라 졌거나 layout_height가 0 인 것을 볼 수 있지만 여전히 작동하지 않습니다.안드로이드 : 설정 높이를 0으로 설정
역설적이게도 계층 뷰어가 완료되면 레이아웃이 자체적으로 수정됩니다. 내 사용자가 계층 뷰어를 실행하는 것이 아마도 용납 될 수 없다고 생각합니다.
EDIT : 중간 레이아웃은 사실 ListView가 포함 된 RelativeLayout입니다. 문제가 될 수 있으므로이를 시도하고 제거 할 것입니다. 내가 뭘보고 있는지에 대한 아이디어를 제공하는 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>
레이아웃의 .xml을 게시 할 수 있습니까? –
레이아웃은 여러 가지 활동에 사용되는 몇 가지 레이아웃 파일로 구성되기 때문에 실제 XML은 매우 복잡합니다. 그러나 위의 단순화 된 버전을 게시했습니다. 그리고 중간 영역은 실제로 차이를 만들 수도 ListView가 포함 된 RelativeLayout, 나는 그것을 시도하고 제거 할 것을 깨달 았어. – jjb