So verwenden Sie Fragmente in Ihren Android-Apps für eine leistungsstarke und dynamische Benutzeroberfläche

Autor: John Stephens
Erstelldatum: 28 Januar 2021
Aktualisierungsdatum: 19 Kann 2024
Anonim
So verwenden Sie Fragmente in Ihren Android-Apps für eine leistungsstarke und dynamische Benutzeroberfläche - Apps
So verwenden Sie Fragmente in Ihren Android-Apps für eine leistungsstarke und dynamische Benutzeroberfläche - Apps

Inhalt


Hinweis: In diesem Artikel wird davon ausgegangen, dass Sie mit den Grundlagen der Android-Entwicklung und Java vertraut sind. Sie sollten bereits in der Lage sein, grundlegende Layouts zu erstellen und Ansichten zu verwenden. onClick und findViewByID. Wenn Sie diese Konzepte verstehen, sind Sie bereit, den Umgang mit Fragmenten zu erlernen!

Fragmente sind eine leistungsstarke Funktion einer guten Android-Benutzeroberfläche, mit der Sie sich dem App-Design modular nähern können. Hierbei handelt es sich um unterschiedliche Ansichten, die vollständige Layouts enthalten können und einen eigenen Java-Code enthalten. Indem Sie Ihre Benutzeroberfläche auf diese Weise aufteilen, können Sie logischere Layouts erstellen, die für Ihre Benutzer leichter verständlich sind. Sie können ihnen zusätzliche Informationen und Steuerelemente bereitstellen, ohne dass sie die Aktivität verlassen müssen.


Siehe auch: Problemlose Fragmente: Verwenden der Navigationsarchitekturkomponente von Android

Fragmente bieten Ihnen erheblich mehr Optionen für Ihr App-Design und können das Benutzererlebnis erheblich verbessern

Darüber hinaus verhalten sich Fragmente wie Klassen und Objekte, in denen Sie mehrere haben können Instanzen desselben Fragments. Das heißt, Sie können dasselbe Layout immer wieder verwenden, ohne den Code neu schreiben zu müssen, oder sogar zwei verschiedene Versionen nebeneinander anzeigen.

Kurz gesagt, solange dies noch ist Ein weiterer Wenn es um die scheinbar endlose Aufgabenliste für Android-Apps geht, können Sie deutlich mehr Optionen für Ihr App-Design festlegen und das Benutzererlebnis erheblich verbessern. Dies ist mehr als die Zeit wert, die Sie für das Kennenlernen aufgewendet haben .

So erstellen Sie Ihr erstes Android-Fragment

Was könnten wir also mit Fragmenten tun, die auf andere Weise keinen Sinn ergeben würden?


Vielleicht haben wir eine Liste von Dateien - vielleicht ist dies eine Bildergalerie - und wir möchten eine Beschreibung anzeigen und dem Benutzer die Möglichkeit geben, Dateien zu löschen oder zu teilen. So was. Wir könnten sie jedes Mal mit einer separaten Aktivität auf eine neue "Beschreibung" senden. Wenn Sie jedoch Fragmente verwenden, können wir sie auf einer Seite behalten, die weniger verwirrend ist.

Öffnen Sie Android Studio und erstellen Sie eine Liste mit zufälligen Bildern in activity_main.xml. Ich verwende Bilder von Dragon Ball Super weil ich ein Nerd bin und das ist, was ich auf meinem PC rumliegen habe ...

Jetzt erstellen wir unser erstes Fragment.

Dazu gehen Sie zu Datei> Neu> Fragment. MainActivity.java muss in diesem Fall links ausgewählt werden, und Sie wählen zunächst ein "leeres" Fragment aus. Sie können dann einen Namen für die neue Kreation auswählen, die wir als "Beschreibung" bezeichnen. Deaktivieren Sie die beiden Kästchen darunter - das brauchen wir momentan nicht.

Sobald dies erledigt ist, haben Sie nicht nur eine neue Java-Datei mit dem Namen "Description.java", sondern auch eine neue Layout-Datei mit dem Namen "fragment_description.xml" - so als hätten Sie eine neue Klasse erstellt! Dies bedeutet, dass Sie den Code, der zu Ihrem neuen Fragment gehört, in einer eigenen Java-Datei ablegen.

Hinzufügen von Layouts, Ansichten und Code

Die gute Nachricht ist, dass es für uns sehr einfach ist, Ansichten und ein Layout hinzuzufügen, wenn wir Fragmente verwenden. Wir tun dies wie gewohnt, indem wir die fragment_timer.xml bearbeiten.

Verwenden wir wieder ein lineares Layout und fügen diesmal einige Steuerelemente und beschreibenden Text hinzu. Sie können hier vorerst alles festhalten.

Nun lautet die nächste Frage: Wie wird dies in Ihrer App angezeigt?

Sie können dies tun, indem Sie das Fragment wie bei jeder anderen Ansicht zur Aktivität hinzufügen. Gehen Sie also zu activity_main.xml und fügen Sie die Ansicht so hinzu, dass sie einen Teil des Bildschirms einnimmt - vielleicht ganz unten.

Wenn Sie es so machen möchten, wie ich es getan habe, habe ich ein vertikales lineares Layout verwendet und allen Bildern eine Gewichtung von 1 und dem Fragment eine Gewichtung von 2 gegeben.

Sie werden feststellen, dass in der Vorschau nicht das aktuelle Fragment, sondern nur ein Platzhalter angezeigt wird. Beachten Sie auch, dass ich den Namen des Fragments in die XML-Datei einfügen musste, damit Android weiß, wo es zu finden ist. Sie benötigen auch eine ID für jedes Fragment.

Der Code

Wie bereits erwähnt, wird der Code, den wir zur Verwendung von Fragmenten benötigen, in einer eigenen Java-Datei gespeichert. In diesem Fall ist dies die Description.java-Datei.

Wenn Sie diese Seite auschecken, werden Sie feststellen, dass es einen Konstruktor (wie in jeder Klasse, die ein Objekt erstellt) und eine aufgerufene Methode gibt onCreateView. In dieser Methode wird die XML-Datei zum Aufblasen dieser Ansicht verwendet und entspricht auch der üblichen onCreate Methode in einer Standardaktivität.

Zum größten Teil können Sie die Dinge so tun, wie Sie es normalerweise hier tun würden. findViewByID funktioniert und Sie können dies verwenden, um Text usw. zu ändern, aber Sie müssen den Verweis etwas anders abrufen. Ändern Sie die Zeile, die lautet:

inflater.inflate zurückgeben (R.layout.fragment_description, container, false);

Zu:

Ansicht v = inflater.inflate (R.layout.fragment_description, container, false);

Und dann benutze:

v.findViewByID.

Jetzt können Sie wie gewohnt auf Ihre Ansichten zugreifen:

public View onCreateView (LayoutInflater inflater, ViewGroup-Container, Bundle savedInstanceState) {View v = inflater.inflate (R.layout.fragment_description, container, false); Button okButton = v.findViewById (R.id.okay) ;; Button shareButton = v.findViewById (R.id.Teilen); okButton.setOnClickListener (neuer View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "OK!", Toast.LENGTH_LONG ).Show(); }}); shareButton.setOnClickListener (neuer View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "Sharing ...", Toast.LENGTH_LONG ).Show(); }}); return v; }}

Verwenden Sie Fragmente mit mehreren Instanzen

Sie können sehen, wie viel einfacher es ist, eine optimierte Benutzeroberfläche und Code zu erstellen, wenn wir Fragmente verwenden. Anstatt Layouts in Layouts zu verwenden und dann mit vielen Klicks in einer einzigen Java-Datei zu jonglieren. Darüber hinaus können Sie mit diesem modularen Ansatz diese Ansicht aktivitätsübergreifend und sogar in Menüs und anderen dynamischen Bereichen verwenden.

Aber der wirklich coole Teil ist die Tatsache, dass mehrere Instanzen desselben Fragments gleichzeitig vorhanden sein können.

Dies ist ganz einfach: Sie fügen einfach mehr als eine Ansicht hinzu und blasen mit genau demselben Code auf.

Jetzt können Sie hoffentlich etwas über die Möglichkeiten der Verwendung von Fragmenten erfahren: Stellen Sie sich vor, Sie haben eine Recycler-Ansicht (eine Bildlaufliste) mit Bildern, von denen jedes die Details und Steuerelemente direkt darunter enthält. Sie müssen nicht jedes Mal ein neues Layout erstellen und können die Ansichten ausblenden, bis der Benutzer auf das Bild klickt!

Darüber hinaus können Sie neue Fragmente auch programmgesteuert generieren. Alles, was Sie brauchen, ist eine Stelle, an der das Fragment in Ihr Layout passt - beispielsweise ein Rahmenlayout (das ich nennen werde) fragmentTarget) und dann können Sie Folgendes tun:

Fragment addedFragment = new Description (); FragmentTransaction transaction = getSupportFragmentManager (). BeginTransaction (); transaction.replace (R.id.fragmentTarget, addedFragment); transaction.addToBackStack (null); transaction.commit ();

Stellen Sie sicher, dass Sie die erforderlichen Klassen importieren. Sie werden immer dann aufgefordert, wenn Sie versuchen, Fragmente in Ihrem Code zu verwenden. Stellen Sie einfach sicher, dass Sie die oberste Option mit der Aufschrift "v4" auswählen.

Es ist wichtig, Fragmente programmgesteuert hinzufügen zu können, da dies bedeutet, dass wir eine dynamische Liste von Bildern (die wir heruntergeladen haben, die sich in einem bestimmten Ordner befinden usw.) erstellen und die Details dann sofort für uns anzeigen lassen können.

In diesem neuen Beispiel wurde das zweite Fragment programmgesteuert hinzugefügt.

Schließlich möchten Sie möglicherweise das Aussehen Ihrer Fragmente ändern, je nachdem, wo sie sich befinden. Die gute Nachricht ist, dass Sie dies auf einfache Weise tun können, indem Sie beim Erstellen des Fragments eine ID als Bündel übergeben und diesen Wert dann am anderen Ende extrahieren.

In der MainActivity.java verwenden Sie:

Bundle bundle = new Bundle (); bundle.putInt ("ID", 1); addedFragment.setArguments (Bundle);

Und dann in der Description.java hinzufügen:

int eyeD = 0; Bundle bundle = this.getArguments (); if (bundle! = null) {eyeD = bundle.getInt ("ID", 0); } switch (eyeD) {case 1:…

Sie können dann beispielsweise festlegen, dass Ihre App für jedes Bild unterschiedliche Notizen anzeigt.

Abschließende Kommentare

So verwenden Sie Fragmente. Hoffentlich haben Sie die Grundlagen verstanden, und durch diesen Beitrag haben Sie genug Verständnis dafür, dass Sie den Rest herausfinden können. Noch wichtiger ist, ich hoffe, es hat Ihnen gezeigt, wie Fragmente verwendet werden können und welches Potenzial sie für ein intelligenteres App-Design bieten.

Wenn Sie ein weiteres Beispiel für Fragmente in Aktion sehen möchten, lesen Sie unbedingt meinen letzten Beitrag zum Erstellen eines benutzerdefinierten Startprogramms.

Android-Entwicklung:

  • So erstellen Sie eine VR-App für Android in nur 7 Minuten
  • Erstellen Sie Ihre eigene Aktion für Google Assistant
  • Root Android: Alles was du wissen musst!
  • Anatomie einer App: Eine Einführung in die Lebenszyklen von Aktivitäten
  • Android Jetpack: Was bedeuten die jüngsten Ankündigungen für die Android-Supportbibliothek?

Getern ein Bombenreport von Da Wall treet Journal enthüllte Einzelheiten zu einer Partnerchaft zwichen Google und Acenion, einem der größten amerikanichen Geundheitdientleiter....

In einem Blogeintrag, der heute veröffentlicht wurde, kündigte Google neue Aktivitätkarten für die Google-uche an. Die Karte wird eingeblendet, wenn Ihre aktuelle uchabfrage einer ...

Sowjetisch