私のアクティビティでは、すべてのGUIフラグメントが単一のXMLレイアウトで宣言されています。それは、起動時にフラグメントのいくつかを表示するだけでよい。残りの部分は、ユーザーがアプリと対話するときに表示されます。次のようなレイアウトの一部は次のとおりです。フラグメントを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として開始します。これは、私の活動が読み込まれた断片を反復して、手作業でdetail_panel
のような断片にisHidden(true)
を手動で呼び出さなければならないことを意味します。
isHidden
のステータスをXMLレイアウトで宣言することをお勧めします。しかし、<fragment>
宣言にandroid:visibility="gone"
を設定しても、isHidden
のステータスは変更されません。そのトリックを行う別の属性に関するドキュメントは見つかりません。
<fragment>
にXML属性を設定して非表示にすることはできますか?
注:私は視界の視認性に関心がありません、私はfragment.isHidden()
値に関係しています。これは、FragmentManagerがバックスタックを操作してアニメーションを実行する方法に影響します。ビューが見えない、またはなくなっているが、fragment.isHidden()
の値がfalseのフラグメントでtransaction.show(fragment)
を呼び出すと、FragmentManagerはビューを表示しません。参考までにhttp://developer.android.com/reference/android/app/Fragment.html#isHidden()を参照してください。
あなたはAndroidを試しましたか?visibility = "invisible"? – Sushil
はい、私は "消えた"ことに加えて "不可視"を試みました。フラグメントのisHiddenステータスにも影響しません。 –
「行かないで」とはどういう意味ですか?あなたは単に目に見えないものを試しましたか?この場合、それはフラグメントを作成し、それを不可視の状態に保ちます。 – Sushil