2012-07-19 17 views
12

Sto usando ViewPager per scorrere tra i miei frammenti. È possibile integrare uno scanner QR (zxing o qualsiasi altro) all'interno di un frammento in modo da poter scorrere dallo scanner View a un altro frammento e viceversa?Uno scanner QR all'interno di un frammento

Per quanto posso dire, la maggior parte degli scanner qr mi richiedono di utilizzare una classe di attività estesa e di avviarlo per il risultato, la gestione in onActivityResult, che non è un'opzione per me

+0

Una ricerca rapida rivelerebbe quello che stai cercando: http://stackoverflow.com/questions/4782543/integration-zxing-library-directly-into-my-android-application –

+1

Questo non è quello che sono stato chiedendo, so come integrare zxing, il problema è che per usarlo devo avviare un'attività separata, ma ho bisogno di usarlo in un frammento –

+0

È esattamente quello che stai cercando. La risposta accettata ti dice come integrare direttamente 'zxing' nel tuo codice invece di usare l'approccio basato su 'Intent' che, come dici tu, non è un'opzione. Quindi puoi usarlo nel tuo 'Frammento', 'Attività', qualunque cosa. Inoltre, l'opzione 'Intent' (usando' onActivityResult') è anche possibile fare in 'Fragment'. Puoi usare i risultati di 'onActivityResult' nel tuo frammento, dopotutto, ogni' frammento' ha bisogno di un'attività 'padre'. –

risposta

5

Il barcodefragmentlib è quello che stai cercando. E il suo wiki mostra come integrarlo (anche se ho usato un modo diverso prima che il wiki venisse fuori).

Tuttavia, dopo averlo completamente integrato e risolto tutti i problemi della nostra app commerciale, mi sento come mettere uno scanner QR all'interno di un frammento e passare utilizzando ViewPager non è una buona idea. Alcuni dei problemi noti con questa idea e la libreria menzionata sono:

  • Passare frequentemente tra il frammento QR e altri frammenti renderà la tua app in ritardo e facilmente in crash;
  • La sostituzione del frammento non è così facile da gestire come Attività, il frammento QR è anche peggiore;
  • Handling modalità di scansione verticale/orizzontale non è disponibile di default (in relazione alla lib ZXing originale)
  • Quando prima aprire il frammento QR, può black out vostro schermo per un tempo molto breve
  • scanner non funziona bene su Galaxy S4 o altri nuovi dispositivi con fotocamera/display ad alta risoluzione

Sebbene questi problemi sopra menzionati possano essere risolti con un certo sforzo, è davvero un compromesso.

Problemi correlati