ダイアログをテーマにした活動があります。そのレイアウトには 3 つの部分があります
ヘッダ
本文 (リストビューあり)
OKボタン
これは常に私のレイアウトの構造でなければなりません。次のレイアウト xml を使用する場合:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/iv_av_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dip"
android:layout_marginTop="2dip"
android:paddingLeft="6dip"
android:src="@drawable/tablet_ic_logo" />
<RelativeLayout
android:id="@+id/rl_av_found"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/iv_av_logo"
android:layout_marginBottom="5dip"
android:paddingLeft="16dip" >
<TextView
android:id="@+id/tv_av_found"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/orange"
android:textSize="22dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_av_recommendation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_av_found"
android:layout_marginBottom="8dip"
android:textColor="@color/white"
android:textSize="13dp"
android:visibility="gone" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_av_body"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/rl_av_found"
android:background="@drawable/tablet_dialog_glow" >
<ListView
android:id="@+id/lv_av_threats_found"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:divider="@drawable/tablet_dialog_separator" >
</ListView>
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_button_bar"
android:layout_width="wrap_content"
android:layout_height="70dip"
android:layout_below="@id/ll_av_body" >
<Button
android:id="@+id/btn_av_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:onClick="onClick"
android:text="@string/btn_ok" />
<ImageView
android:id="@+id/iv_separator"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentTop="true"
android:background="@drawable/tablet_dialog_footer" />
</RelativeLayout>
</RelativeLayout>
それは私が欲しいものを与えてくれます。しかし、リストが大きくなり、たとえば 100 個のアイテムがあると、[OK] ボタンが表示されなくなります。
そして、このレイアウトを使用すると:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/iv_av_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dip"
android:layout_marginTop="2dip"
android:paddingLeft="6dip"
android:src="@drawable/tablet_ic_logo" />
<RelativeLayout
android:id="@+id/rl_av_found"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/iv_av_logo"
android:layout_marginBottom="5dip"
android:paddingLeft="16dip" >
<TextView
android:id="@+id/tv_av_found"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/orange"
android:textSize="22dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_av_recommendation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_av_found"
android:layout_marginBottom="8dip"
android:textColor="@color/white"
android:textSize="13dp"
android:visibility="gone" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_button_bar"
android:layout_width="wrap_content"
android:layout_height="70dip"
android:layout_alignParentBottom="true" >
<Button
android:id="@+id/btn_av_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:onClick="onClick"
android:text="@string/btn_ok" />
<ImageView
android:id="@+id/iv_separator"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentTop="true"
android:background="@drawable/tablet_dialog_footer" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_av_threats"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/rl_button_bar"
android:layout_below="@id/rl_av_found"
android:background="@drawable/tablet_dialog_glow" >
<ListView
android:id="@+id/lv_av_found"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:divider="@drawable/tablet_dialog_separator" >
</ListView>
</LinearLayout>
</RelativeLayout>
[OK] ボタンは常に画面の下部に表示され、ListView に項目が 1 つしかない場合でも、レイアウトの高さが全画面表示になります。
ListView 内のアイテムの数に関係なく、コンテンツに応じて高さをラップし、[OK] ボタンを常に表示するように xml を構成するにはどうすればよいですか?