Statische Fragmente vs. dynamische Fragmente

8

Was sind die Vor- und Nachteile der Verwendung eines in XML definierten statischen Fragments im Gegensatz zu einem dynamischen in Java? Hier sind Kategorien: 1. Wartbarkeit, 2. Kompatibilität und 3. Leistung, 4. UX

    
Clint Deygoo 14.05.2014, 20:53
quelle

1 Antwort

3

Es gibt einen großen Unterschied bei der Verwendung von Fragmenten durch XML oder dynamisch durch Java-Code. Je nachdem, welchen Sie gewählt haben, wird der Hauptunterschied darin bestehen, wie der Benutzer den Fluss der App erlebt.

TLDR : Die folgenden Merkmale werden von Fragmenten geteilt, die über XML und dynamisch mit Java-Code (über FragmentManager API) instanziiert werden. Mit dem Java-Code können Sie jedoch jedes Fragment ändern, hinzufügen oder entfernen in Runtime, was eine Flexibilität ermöglicht, die sonst unmöglich wäre.

Aber um Ihre Frage zu beantworten:

1 - Wartbarkeit - In etwa verwenden Sie das Attribut android: name, um die Klasse fragment zu definieren, die Sie mit VS verwenden möchten:

%Vor%

Bei nur einer Transaktion gibt es kaum einen Versuch.

2 - Kompatibilität: etwa gleich , beide werden häufig von Entwicklern überall verwendet

3 - Leistung, der einmalige Inflationsprozess könnte ein wenig schneller sein, aber sie sind im Wesentlichen sogar .

4 - UX: Hier könnte je nach Ihren Bedürfnissen kein Unterschied oder ein großer sein.

Was ist also der große Unterschied zwischen XML oder "dynamischen Fragmenten"?

Fragmente, die durch direkte XML-Inflation instanziiert werden können nicht dynamisch über den FragmentManager verwaltet werden.

Dies bedeutet zum Beispiel, dass Sie das Fragment / Layout nicht mehr in den Backstack schieben können, wenn Sie das Fragment / Layout aufgebläht haben. Dynamische Verwaltung von Fragmenten kann verwendet werden, um dem Benutzer dieses schnelle Single-Flow-Erlebnis innerhalb einer Mehrzweckaktivität zu geben, die unmöglich zu bekommen ist, wenn Sie von einer Aktivität zur nächsten springen.

Nach der obigen FragmentTransaction haben Sie die absolute Freiheit, den gleichen Layout-Container für andere Fragmente sehr schnell wiederzuverwenden

%Vor%

"Warum haben wir also XML-Fragmente? Wir sollten sie sofort verbieten!"

Nicht so schnell, wenn Sie zum Beispiel einfach ein Fenster / Layout mit mehreren Fenstern in Ihrer App haben möchten, das sich während seiner Lebensdauer nicht zu sehr ändert (dh wenn Sie bleiben können) Mit diesem Layout, bis die Aktivität abgebrochen wurde, hätte die XML-Inflation keine Nachteile und je nach Menge der Fragmente könnten Sie eine Menge FragmentTransactions-Code ersparen.

Ein weiterer wichtiger Anwendungsfall könnte sein, einfach auf die Verwendung eines anderen Geräts Configuration wie Bildschirmgröße oder andere Bildschirmausrichtung (wie bei der Verwendung der App auf Tablets und Smartphones Hochformat / Querformat) ist XML eine einfache Lösung, um für jede dieser (und anderen) Gerätekonfigurationen ein anderes Layout bereitzustellen.

Quellen: Link

Link

Link

Link

    
HenriqueMS 12.10.2016, 15:42
quelle