Intro:
Das grundlegende Muster "Fragment-Tutorial" sieht ungefähr so aus:
- Haben Sie auf einem Tablet links eine Liste, rechts Details.
- Beide sind
Fragmentsund beide wohnen im selbenActivity. - Haben Sie auf einem Telefon eine Liste
Fragmentin einerActivity. - Starten Sie eine neue
Activitymit 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 Activityund im separaten Telefon duplizierenActivities .
- Wäre es nicht einfacher, das 1-Aktivitätsmodell in beiden Fällen beizubehalten
Fragmentsund 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 Fragmentsselbst, und es gibt nur eine einzige ActivityDuplizierung von Code.
Auch das, was ich über das lesen ActionBarSherlockist , dass es am besten zu funktionieren mit scheint Fragmentsstatt 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