2016-07-10 8 views
1

Hallo, ich bin die Hoffnung, jemand einige Verwirrung klar kann ich aus der Lektüre diese Website (Abschnitt 4.2) http://www.vogella.com/tutorials/AndroidFragments/article.html und einige Code habe ich über Youtube https://www.youtube.com/watch?v=oN2AAhaOBf8Android Studio Multi-Fragment in 1-Aktivität Implementierung

gesehen

Meine Frage: Eine Aktivität und zwei Fragmente..aber Sie wollen nur ein Fragment auf einmal sehen. innerhalb der activity_main XML-Datei statt

<fragment 
     android:id="@+id/message_fragment" 
     android:name="com.example.android.fragments.MessageListViewFragment" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="top" /> 

    <fragment 
     android:id="@+id/send_fragment" 
     android:name="com.example.android.fragments.SendMessageFragment" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="bottom" /> 

mit Sollten ersetze ich jedes Fragment mit FrameLayout? Oder würde ich nur ein FrameLayout haben ... Ich habe beide gesehen, nicht sicher, welches ist richtig. Danke, Ich versuche nur zu verstehen..Von der Forschung nehme ich an, FrameLayout erlaubt nur ein Fragment zu einer Zeit erscheinen ??

Antwort

1

FrameLayout verhindert das Ausblenden eines Bereichs auf dem Bildschirm, um ein einzelnes Element anzuzeigen. Im Allgemeinen sollte FrameLayout verwendet werden, um eine einzelne untergeordnete Ansicht zu halten ... Sie können jedoch mehrere untergeordnete Elemente zu einem FrameLayout hinzufügen und ihre Position innerhalb des FrameLayouts steuern, indem Sie jedem untergeordneten Element die Schwerkraft zuweisen.

können Sie android:visibility Tag verwenden, und schalten Sie zwischen visible/invisible nach Bedarf Basis. Dies würde unabhängig von jedem Layout funktionieren.

+0

okay, so unter einem Fragment1 macht es sichtbar und das fragment2 unsichtbar, was bedeutet es Kind Sicht? – Nameishi

+0

Solltest du sagen, dass das Ändern des Fragments in FrameLayout keinen Unterschied macht, wenn man ein Fragment nach dem anderen sieht? – Nameishi

+0

Ja, wenn Sie dem obigen Beispiel folgen, ist nur eine Ansicht zu einem Zeitpunkt sichtbar, der den gesamten übergeordneten Bereich belegt. – Jaydev