2016-11-08 5 views
4

in meiner App habe ich ein Fragment mit der dm77/barcodescanner.Android Barcodescanner Standbild mit mehreren ZXingScannerView

arbeite ich an einem Geschäft app, ex: Sie einen Artikel scannen -> Seite Produkt -> Weiter einkaufen -> öffnen Sie eine andere Scanner sessione -> usw.

Nun, wie Sie sehen können, weil Das Clinet möchte den Backstack beibehalten, mehrere Isstances dieses Fragments könnten offen sein (aber nicht gleichzeitig).

Das erste Fragment mit dem Scanner funktioniert gut, die andere ein Standbild hat, auch wenn ich

scannerView.stopCamera(); 
scannerView = null; 

verlassen das erste Fragment nennen.

HINWEIS: das andere Fragment funktioniert gut, wenn anstelle von wir hinzufügen verwenden ersetzen. Aber das wird Probleme bei den Animationen des Fragments verursachen.

Antwort

2

Nach wütend Debuggen, fand ich, wie alle Arbeiten zu machen:

  • Wenn das Fragment sichtbar ist/in Gebrauch ist, erstellen und fügen Sie programmatisch zum Layout der ZXingScannerView, Starten der Kamera und in der Vorschau;
  • Wenn das Fragment nicht sichtbar/verwendet wird, entfernen Sie die ZXingScannerView aus Ihrem Layout;
  • Auf einigen Android-Version (wie 5.01) achten Sie darauf, startCamera nicht mehr als einmal anrufen, sonst können Sie es nicht mehr öffnen, bis Sie die App neu starten. Der Fehler hier wird durch eine tote Thread-Ausnahme verursacht.

Hoffe, genug klar und hilfreich gewesen zu sein.

Verwandte Themen