RSS-Feed

Android Fragments

von Kai um 10:07 am Mittwoch, 1. Februar 2012 in Android, How-To | 1 Kommentar

Gefühlte 95% aller Android Apps sind nicht für Tablets angepasst, was zur Folge hat, dass viele Apps einfach schlimm aussehen. Dabei wurde vor ziemlich genau einem Jahr eine sog. Fragment API veröffentlicht, die die Anpassung bestehender (und neuer) Apps auf Tablets einfacher gestalten soll. Ziel ist es, eine einzige APK-Datei (also App) für alle Plattformen zu bauen, um damit den Mehraufwand beispielsweise bei Aktualisierungen zu minimieren.

Da meine beiden kleinen Apps bisher ebenfalls nicht mit gutem Beispiel vorangehen, habe ich mich mal etwas näher mit der Android Fragment API beschäftigt. Die Idee dahinter ist schnell erklärt: Statt bisher einer Activity hat man nun eine FragmentActivity, die wiederum eine oder mehrere Fragments beinhaltet. Für ein Smartphone bietet sich nun an, je FragmentActivity ein Fragment darzustellen. Bereits veröffentlichte (oder geplante) Apps lassen sich damit komplett auf Fragments portieren, ohne etwas am Design, Aufbau oder der Interaktion der App etwas zu ändern. Um dieselbe App nun auf Tablets zu portieren, passt man den Aufbau der App (also die entsprechende XML-Datei der FragmentActivity) dahingehend an, dass man je nach Größe, eben zwei oder mehrere Fragments pro FragmentActivity anzeigt.

Ein häufig anzutreffendes Beispiel ist die Listenansicht innerhalb einer Activity: Klickt der Benutzer auf ein Listenelement geht eine neue Activity auf mit dem Verweis des geklickten Elements. Auf einem Tablet ist genug Platz, um neben der Liste einen Bereich anzuzeigen, der den Inhalt des aktuellen Listenelements anzeigt.

Da das Konzept von Fragments am Anfang etwas verwirrend sein kann, hab ich auf GitHub ein minimales Minimalbeispiel gebaut, was eine einfache Liste darstellt und eine zweite Ansicht mit dem Inhalt jedes Listenelement zeigt.



Bisher 1 Kommentar zu "Android Fragments"

  1. Comment von Henning
    5. Februar 2012 um 21:07

    +1

    Thanks for sharing ;-)

RSS-Feed für Kommentare zu diesem Artikel.  TrackBack URL

Hinterlasse einen Kommentar