いくつかのコントロール(layout_alignParentTop = true)を含むTableLayout、一番下のLinearLayout(layout_alignParentBottom = true)の3つの要素を含むRelativeLayoutがあります。それらの間に広がるListView(2つの要素のlayout_belowとlayout_aboveを使用)これはうまくいきますが、特定の状況下では、LinearLayoutの下端を消す必要があります。 setVisibilityを使用してView.GONEに設定するか、setLayoutParams()を使用して高さを0に設定すると、ListViewは新しく解放された領域を占有するように慎重にサイズ変更を拒否します。基本的には階層内のすべてに対してrequestLayout()を呼び出そうとしましたが、何も動作していないようです。階層ビューアを起動すると、ビューがなくなった/ layout_heightが0であることがわかりますが、それでも動作しません。Android:設定高さを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