2016-03-23 2 views
2

Hier suchen Sie einen Rat.Zurück Navigation von WebBrowser Formular Popstapel zu viele Male - Android CodenameOne

Ich habe ein einfaches leeres Formular in meiner UIBuilder App, das eine Webbrowser-Komponente in die Mitte seines BorderLayouts in seiner "beforeVideoScreen" -Methode stellt. Es lädt eine externe Seite (eingebetteter Youtube-Link), die im Code festgelegt ist.

Es wird meine Erklärung helfen Ihnen meine Formulare Hierarchie (alle UI Builder basiert) zu verstehen:

Main -> Kategorien -> Themen -> Details -> Video Viewer

On Samsung Galaxy Android-Geräte (Ich habe ein SG3 mit 4,4 und und SG6 mit 5.1), wenn ich auf dem "Video Viewer" -Formular bin und die Zurück-Taste auf dem Gerät drücken, sehe ich einen seltsamen visuellen Effekt - wie zurück zweimal navigieren der gleiche Bildschirm. Ich komme zum richtigen Formular (das Formular "Details"), aber wenn ich von "Details" alle Schritte zum Hauptfenster zurück navigiere, überspringt es das Kategorienformular.

Jetzt wird es interessant: Wenn ich wiederholt zwischen "Video Viewer" und "Details" hin und her gehe, habe ich schließlich keine Rückstapel aus dem Detailformular. (Wenn ich den "Video Viewer" zurück zu "Details" mache, fahre diesen Weg zweimal durch, dann fehlen 2 Formulare, 3 Mal und 3 Formulare fehlen etc.) Es wird nur die App verlassen. Lässt mich denken, dass es auf dem Back-Stack doppelt abtaucht.

Auf dem Simulator und physischen iOS-Gerät zeigt dieses Verhalten nicht. Wenn ich die Webbrowser-Komponente entferne und stattdessen ein statisches Bild platziere, zeigt es dieses Verhalten nicht, also ist es nicht die UIBuilder/forms-Struktur selbst usw. Es scheint isoliert zu sein, dass die WebBrowser-Komponente auf dem Bildschirm ist, wenn die Zurück-Taste gedrückt wird Gerät.

Also meine Frage: Ich kann nicht einen Weg finden, um dies zu beheben. Kann jemand entweder eine Möglichkeit zur Behebung dieses Problems (nativer Android-Browser ....) oder bekannte Probleme/Workarounds dafür empfehlen?

+0

Ich bin in diese suchen, gibt es Unterstützung für für einige Anwendungsfälle den Zurück-Knopf greifen, aber es sollte nicht implizit sein. –

Antwort

0

ich ein potenzielles fix gemacht habe dieses Problem zu beheben, diese Überprüfung ist so bin ich nicht sicher, ob es das „Richtige“ ist: https://github.com/codenameone/CodenameOne/commit/e5fb68fa881d680746a34134a368da91b71bc71b

+0

Shai, wie kann ich das mit meinem Code testen? Soll ich den Git ziehen und kompilieren? Ich habe jetzt eine Abhilfe gefunden: Ich ändere den Zurück-Befehl auf dem Video-Bildschirm, um die Seite auf eine leere HTML-Seite zu setzen, um die Wiedergabe des Videos zu stoppen. Dann ersetze ich den Browser durch eine Bezeichnung, bevor ich den "back()" -Befehl aufruft . Bis jetzt funktioniert es und sieht nicht schlecht aus, aber eine Lösung wäre ideal. –

+0

Wir veröffentlichen jetzt Updates jeden Freitag, wenn dies nicht bis Sonntag behoben ist, ist das Problem immer noch da http://www.codenameone.com/blog/weekly-release-developer-guide-javascript-promotion-end.html –