Wie kann ich erklären, ein Fragment, als versteckt in einem XML-layout

Meine Tätigkeit erklärt alle seine GUI-Fragmente in einer einzigen XML-layout. Es muss nur der display ein paar der Fragmente an den Start; den rest bekommen gezeigt, wie die Benutzer mit der Anwendung interagiert. Ein Teil des layout ist wie folgt:

<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" />

Meine Absicht ist, dass die list_panel fragment sichtbar ist am Start, und die detail_panel fragment wird ausgeblendet, bis der Benutzer wählt etwas aus der Liste aus.

Standardmäßig ein fragment beginnt mit den isHidden Attribut als falsch. Das bedeutet, dass meine Aktivität hat, Durchlaufen die geladenen Fragmente und manuell aufrufen isHidden(true) auf Fragmente wie detail_panel beim Systemstart.

Ich würde es vorziehen, zu erklären, dass die isHidden status in der XML-layout. Jedoch, die Einstellung android:visibility="gone" im <fragment> Erklärung ändert nicht die isHidden status, und ich finde keine Dokumentation über ein weiteres Attribut, das würde den trick tun.

Ist es möglich, ein XML-Attribut auf eine <fragment> zu verursachen, dass es versteckt werden?

Hinweis: ich befasse mich nicht mit der Sicht, ich bin besorgt, mit der fragment.isHidden() Wert. Das betrifft, wie FragmentManager manipuliert den stack zurück und führt die Animationen. Wenn Sie anrufen transaction.show(fragment) auf ein fragment, dessen Blick unsichtbar oder verschwunden, aber der fragment.isHidden() Wert false ist, dann wird der FragmentManager nicht die view sichtbar. Sehen http://developer.android.com/reference/android/app/Fragment.html#isHidden() für Referenz.

haben Sie versucht, android:visibility="invisible"?
Ja, ich habe versucht "unsichtbar" neben "gone". Weder Auswirkungen auf das fragment isHidden status.
Was meinst du mit "inaddition zu gegangen". hast du nur versuchen "unsichtbar". In diesem Fall wird es schaffen, die fragmment und halten Sie es in einem unsichtbaren Zustand.
Nein, die Einstellung für android:visibility="invisible" innerhalb eines <fragment> - tag keine Auswirkungen auf die isHidden Zustand des fragments.
Hast du eine Antwort?

InformationsquelleAutor Jay Lieske | 2013-11-15

Schreibe einen Kommentar