Wie Navigation richtig gestallten.

  • Antworten:8
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 28

07.02.2015, 14:03:39 via Website

Ich hab hier ein kleines Problem und komme langsam wirklich nicht mehr weiter. Es geht hier um die Navigation eines Objektes welches aus mehreren Teilen bestehen soll. Objeckt = Activity und Teile = Fragmente

Am besten schildere ich einmal was ich brauche bzw. welche Elemente Pflicht sind und bei welchem Teil ich ratlos bin.

Beispiel:

Ich Öffne ein Auto. Dieses Auto besitzt, Kommentare(Eigenes Fragment), Informationen(Eigenes Fragment) und Versionen(Eigenes Fragment).

Normalerweise würde ich ein ViewPager verwenden um zwischen den Fragmenten hin und her zu swipen.

Jetzt kommt das Problem: Das Fragment "Versionen" besteht allerdings schon aus verschiedenen Fragmenten in einem ViewPager.

Das heißt ich benötige für die 3 darüberliegenten ein weiteres Navigationselement. Nur welches = nicht veraltet?

Ich bitte dringend um Hilfe.

Viele vielen Dank im Vorraus.

Antworten
  • Forum-Beiträge: 1.904

08.02.2015, 12:55:31 via App

Für die drei sachen würde ich einen ViewPager mit TabHost nehmen und dann eine Liste für die Versionen.

http://developer.android.com/training/design-navigation/index.html

— geändert am 08.02.2015, 12:57:17

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
  • Forum-Beiträge: 28

08.02.2015, 22:21:05 via Website

Vielen Dank für die vielen Vorschläge. Ich hab mich nun doch entschieden, was ich machen möchte. TabHost wäre infrage gekommen. Eine Liste für die Versionen kann ich leider nicht nehmen da die Elemente einfach zu groß sind als das ich dies in eine Liste tun könnte.

Jetzt nehme ich den Navigation-Drawer. Im Navigation Drawer kommen auch andere Sachen rein. Die ersten Einträge, Momentan nicht mehr als 3, sollen dann ganz oben im Navigation Drawer hinkommen. Ich brauche leider den Platz und wenn ich neben der Anzeige der Aktuellen Version noch einen Tab hinsetze bleibt nicht mehr viel Übrig. Deshalb leider der Navigation-Drawer. Hoffe es kommt später nicht zu blöd rüber. Das muss noch getestet werden ---> vielen entsteht leider mit Prototyping, da noch zu Neuland für mich.

Jetzt eine Frage die sehr viel damit zu tun hat.

Was ist der Unterschied beim deklarieren von Fragmenten von A.) Mittels Fragmentmanager und Fragmenttransaktion und B.) Fragment.instantiate(...) ?

Das wäre wirklich super wichtig für mich.

Meine Vermutung ist das ich mittels "instantiate" eine Referenz des Fragmentes erhalte, auch wenn diese nicht mehr im Vordergrund ist. Andernfalls wird eine neue erstellt. Ist das richtig so? Was für Nachteile hat man denn dadurch und wo liegen die Vorteile? Auf was muss man achten? Gibt es Szenarien indem man das besser nicht verwenden sollte?

Viele Dank schon mal!!!

Antworten
  • Forum-Beiträge: 1.904

09.02.2015, 07:05:48 via App

Du extendest erstmal von Fragment. Das ist deine eigene Klasse. Diese füllst du mit den nötigen Dingen. Danach in deiner Activity per Fragmentmanger und transition eine neue Instanz deines Fragments mit add oder replace in das Layout setzen.

Im Navigation Drawer sollten glaube ich nur Elemente sein, die immer auf den gleichen Punkt verweisen. Habe ich dein Beispiel richtig verstanden? Guck dir die AndroidPit App an.

— geändert am 09.02.2015, 07:08:15

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
  • Forum-Beiträge: 28

09.02.2015, 11:10:43 via Website

Ja genau, eigene Fragmente hab ich schon geschrieben. Soweit bin ich ja schon.

Ich hatte es vorher so das ich Tabs in der Actionbar hatte, welche aber jetzt veraltet sind. Zum dem hat mir das auch nicht wirklich zugesagt.

Ich verstehe nur den Sinn von Fragment.instantiate nicht.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

09.02.2015, 13:35:16 via Website

Marco

Ich verstehe nur den Sinn von Fragment.instantiate nicht.

Was verstehst du daran nicht?

Wenn du in der API Doc nachschaust:

public static Fragment instantiate (Context context, String fname, Bundle args)
Added in API level 11

Create a new instance of a Fragment with the given class name. This is the same as calling its empty constructor.

Die Methode erstellt dir ein neues Fragment.
Sinn: Du bekommst ein Fragment Objekt zurück, zudem kannst du hier gleich einen Namen und ein Bundle übergeben.

— geändert am 09.02.2015, 13:35:28

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 28

07.06.2015, 10:03:58 via Website

Ja ich habs jetzt verstanden. Gibt also mehrere Wege die zum Ziel führen. Das war für mich anfangs nur etwas verwirrend. Danke für die Hilfe.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

07.06.2015, 11:57:55 via App

Bitte setze deinen Thread noch auf Beantwortet, indem du im Browser über deinem ersten Post auf "Mehr"->"Beantwortet" klickst.

Danke (smug)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten

Empfohlene Artikel