私のアクティビティは、すべての GUI フラグメントを単一の XML レイアウトで宣言しています。起動時にいくつかのフラグメントを表示するだけで済みます。残りは、ユーザーがアプリを操作するときに表示されます。レイアウトの一部は次のとおりです。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/map_panel"
android:name="com.example.MapPanel"
android:layout_width="match_parent"
android:layout_height="@dimen/map_panel_height" />
<fragment
android:id="@+id/list_panel"
android:name="com.example.ListPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/map_panel" />
<fragment
android:id="@+id/detail_panel"
android:name="com.example.DetailPanel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/map_panel"
android:visibility="gone" />
私の意図は、list_panel
フラグメントが起動時に表示されdetail_panel
、ユーザーがリストから何かを選択するまでフラグメントが非表示になることです。
デフォルトでは、フラグメントはisHidden
属性が false で開始されます。つまり、私のアクティビティは、ロードされたフラグメントを繰り返し処理し、起動時 isHidden(true)
のようにフラグメントを手動で呼び出す必要があります。detail_panel
isHidden
XML レイアウトでステータスを宣言したいと思います。ただし、宣言で設定android:visibility="gone"
してもステータスは変更されません。別の属性に関するドキュメントが見つかりません。<fragment>
isHidden
に XML 属性を設定して<fragment>
非表示にすることはできますか?
注: ビューの可視性には関心がなく、fragment.isHidden()
値に関心があります。これは、FragmentManager がバック スタックを操作してアニメーションを実行する方法に影響します。transaction.show(fragment)
ビューが非表示またはなくなったが、値が false のフラグメントを呼び出した場合fragment.isHidden()
、FragmentManager はビューを表示しません。http://developer.android.com/reference/android/app/Fragment.html#isHidden()を参照してください。