App mit Wizard - Best practice

  • Antworten:6
GregorF
  • Forum-Beiträge: 4

23.08.2021, 14:04:58 via Website

Hallo,

ich habe gerade begonnen Apps für Android zu entwickeln und bin gerade etwas ratlos in Bezug auf den besten Weg für die Realisierung meiner geplanten App.

Die App hat verschiedene Bereiche. Aktuell sind es 3. In jedem dieser Bereiche wird dem Benutzer die Auswahl einer Liste angeboten. Dann soll für jeden Eintrag in der Liste eine Detailansicht angezeigt werden um bestimmte Eingaben machen zu können. Die Detailansicht wird die Knöpfe letzter Eintrag, weiter, Pause und Beenden anbieten.

Geplant ist eine Tabbed- Activity zu verwenden und dann in den Tabs den entsprechenden Wizard anzuzeigen.

Meine Frage ist ob es hier Unterstützung gibt, die benötigten Fragmente und die Transitionen zu realisieren ohne das ganze in den benötigten Fragmenten hart zu verdrahten. Falls es Alternative Ideen für die Umsetzung gibt, bin ich offen für Vorschläge.

Als IDE verwende ich Android Studio Arctic Fox. Das ganze soll auf Android Oreo oder höher laufen.

Sollte es hierzu schon einen Thread geben, habe ich ihn trotz suchen nicht gefunden. Ich bin für jeden Hinweis dankbar.

Vielen Dank im Voraus...

— geändert am 23.08.2021, 14:07:03

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.08.2021, 17:39:13 via Website

Hallo Gregor,

es gibt sicher Wizard Libs, auf die schnelle habe ich aber nur alte Versionen gefunden, die man heute nicht mehr Nutzen kann/sollte.
Ansonsten nimmst du eine RecyclerView, 3 Fragments und einen ViewPager oder Tabs. Wobei man heute den ViewPager häufiger findet als wirklich ein TabLayout.
Do viel musst du da gar nicht machen. In der Activity mit dem ViewPager, muss halt klar sein welche Fragmente in welchem Index vom ViewPager geladen werden soll. Aber ansonsten müssen die Fragmente nichts geenseitig wissen. Du brauchst dann nur wieder eine einheitliche Schnittstelle zur Details Activity. Wichtig dabei ist auch eine von der UI entkoppelte Datenhaltung z.b. via Repository Pattern oder per ViewModel.

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

Hilfreich?
Kommentieren
GregorF
  • Forum-Beiträge: 4

23.08.2021, 23:53:05 via Website

Hallo,

danke für die Antwort. Ich werde mir dann mal den ViewPager ansehen...

Die Datenhaltung per Repository zu realisieren war sowieso mein Plan.

Edit:

So wie ich den ViewPager verstehe, würde man damit die Weiterschaltung zwischen der Auswahl der Liste und der Bearbeitung der einzelnen Einträge realisieren. Das Blättern zwischen den Einträgen würde dann das Fragment mit der Detailansicht übernehmen. Oder verstehe ich das falsch?

— geändert am 24.08.2021, 00:13:30

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

24.08.2021, 05:23:58 via Website

Hallo mit dem Viewpager kannst du ein einfaches swipen der Fragmente machen.

Hilfreich?
Kommentieren
GregorF
  • Forum-Beiträge: 4

24.08.2021, 10:40:09 via Website

Hallo,

das ist mir bewusst. Nur ist das der technische Aspekt. Neben der Umsetzung geht es mir auch darum meine Idee der Benutzerführung zu validieren und ggf. zu verbessern.

Vom Gedanken der Benutzerführung, stellt sich mir die Frage ob es nicht sinnvoll ist die Schritte des Wizards über den ViewPager darzustellen und dann die Bearbeitung der einzelnen Items aus der Liste über Buttons im Fragment zu realisieren. Hat vor allem damit zu tun, dass der Benutzer die Änderungen an den einzelnen Items bestätigen soll. Ein Swipe wäre hier meine Ansicht nach nicht im Sinne des gewünschten Ablaufs.

Hier noch eine technische Frage: Kann man den Swipe bei einem ViewPager je nach Zustand des angezeigten Fragments auch verhindern? Falls die Antwort offensichtlich ist, bitte ich die Frage zu entschuldigen, da ich mich bisher nur auf der konzeptionellen Ebene mit dem ViewPager auseinander gesetzt habe.

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

26.08.2021, 09:09:50 via Website

Verhindern nicht direkt, glaube ich, allerdings kannst du die anderen Fragmente entfernen, dann geht es auch nicht mehr weiter.
Vermutlich musst du einfach ausprobieren.

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

Hilfreich?
Kommentieren
GregorF
  • Forum-Beiträge: 4

26.08.2021, 15:45:29 via Website

Ich habe zum Thema Swipe verhindern mal im Netz gesucht. Es gibt zwei Methoden (onInterceptTouchEvent , onTouchEvent), die aufgerufen werden bevor der Swipe ausgeführt werden soll. Diese Methoden geben true zurück wenn der Swipe ausgeführt werden soll, ansonsten false. Das verhindert den Swipe per Touchdisplay.

Also eine Subklasse erstellen, die die Methoden überschreibt und halt nur true zurückgeben wenn der Swipe zugelassen ist.

Ist insofern keine große Sache.

Update:
Im ViewPager2 gibt es für diesen Zweck wohl die Methode setUserInputEnabled.

— geändert am 30.08.2021, 08:56:10

Hilfreich?
Pascal P.
Kommentieren