Intro:
Das grundlegende Muster "Fragment-Tutorial" sieht ungefähr so aus:
- Haben Sie auf einem Tablet links eine Liste, rechts Details.
- Beide sind
Fragments
und beide wohnen im selbenActivity
. - Haben Sie auf einem Telefon eine Liste
Fragment
in einerActivity
. - Starten Sie eine neue
Activity
mit den DetailsFragment
.
(zB Android 3.0 Fragments API von Dianne Hackborn und das Fragments API Guide )
Auf beiden Geräten befindet sich die Funktionalität in der Fragments
. (einfach)
Auf dem Tablet ist die gesamte App 1Activity
, auf dem Telefon gibt es vieleActivities
.
Fragen:
- Gibt es einen Grund, die Telefon-App in viele zu teilen
Activities
?
Ein Problem bei dieser Methode besteht darin, dass Sie einen Großteil der Logik im Haupttablett Activity
und im separaten Telefon duplizierenActivities
.
- Wäre es nicht einfacher, das 1-Aktivitätsmodell in beiden Fällen beizubehalten
Fragments
und dieselbe Logik für das Ein- und Ausschalten zu verwenden (nur mit einem anderen Layout)?
Auf diese Weise befindet sich der größte Teil der Logik in sich Fragments
selbst, und es gibt nur eine einzige Activity
Duplizierung von Code.
Auch das, was ich über das lesen ActionBarSherlock
ist , dass es am besten zu funktionieren mit scheint Fragments
statt Activities
(aber ich habe nicht mit ihm noch gearbeitet).
Sind die Tutorials zu stark vereinfacht oder habe ich bei diesem Ansatz etwas Wichtiges verpasst?
Wir haben beide Ansätze erfolgreich im Büro ausprobiert - aber ich bin dabei, ein größeres Projekt zu starten und möchte es mir so einfach wie möglich machen.
Einige Links zu verwandten Fragen:
- Dilemma: Wann sollten Fragmente oder Aktivitäten verwendet werden?
- Muster für die Verwendung von Aktivitätsübergang und dynamischen Fragmenten
- Android - Ich brauche einige Klarstellungen von Fragmenten gegenüber Aktivitäten und Ansichten
- Aktivitäten oder Fragmente in Android?
- Interaktionsdesign für mehrere Fragmente und Aktivitäten
- Was sind die genauen Vorteile von Fragmenten in Android 3.0?
Aktualisierung
Begonnenes Kopfgeld auf Frage - immer noch nicht überzeugt, warum ich meine App-Logik in meiner Tablet-Aktivität und in jeder Telefonaktivität duplizieren muss.
Fand auch einen interessanten Artikel von den Jungs von Square, der es wert ist, gelesen zu werden:
onItemSelected()
Methode in der Aktivität zu haben. In meiner "echten" App habe ich viele Listen und Unterlisten. Dieses Muster legt nahe, dass meine Tab-Aktivität eine onItemSelected()
Methode zum Behandeln jeder der Listen haben muss. Außerdem muss in den Telefonaktivitäten jeweils dieselbe Logik dupliziert sein. IMHO ist es viel besser, die Item Selected-Logik in jedes Fragment einzufügen - es gibt keine Duplizierung und ich bevorzuge diese Art der Strukturierung des Codes. Ich hoffe das hilft