私はrelativelayoutの中にrelativelayoutを持っていて、それはすべてインクルードの中にあります。外側の relativelayout には、画像である android:background があります。
インナーは別のイメージがありますが、同じです。
それはすべて目に見えない。
可視性の切り替えを担当するボタンがあります。
見えるようになると、内側の画像は表示されますが、外側の画像は表示されません。
しかし、クリックして非表示にし、もう一度クリックして表示すると、外側の画像も表示されます。
関連するxmlは次のとおりです。
<RelativeLayout
android:id="@+id/display_prefs_dialog_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="invisible" >
<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="45dp"
android:layout_marginRight="50dp"
layout="@layout/display_prefs_dialog" >
</include>
</RelativeLayout>
そして、インクルードの中に:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/display_prefs_dialog"
android:layout_width="327dp"
android:layout_height="218dp"
android:background="@drawable/display_win" >
<RelativeLayout
android:id="@+id/display_letters_bg"
android:layout_width="262dp"
android:layout_height="44dp"
android:layout_marginLeft="32dp"
android:layout_marginTop="38dp"
android:background="@drawable/display_letter_frame" >
ジャワコード:
final ImageButton btnDisplay = (ImageButton) findViewById(R.id.btnDisplay);
final RelativeLayout prefsInnerDialog = (RelativeLayout) findViewById(R.id.display_prefs_dialog);
final RelativeLayout prefsDialog = (RelativeLayout) findViewById(R.id.display_prefs_dialog_layout);
btnDisplay.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
int visibility = prefsDialog.getVisibility();
if (visibility == View.VISIBLE)
{
prefsDialog.setVisibility(View.INVISIBLE);
}
else
{
prefsDialog.setVisibility(View.VISIBLE);
}
}
});