Perché usare Android Fragments?

14

Ho letto la documentazione e alcune discussioni di altre domande su questo argomento e non mi sento davvero convinto; Non vedo chiaramente i limiti di utilizzo di questa tecnica.

I frammenti ora sono visti come una Best Practice ; ogni attività dovrebbe essere fondamentalmente un supporto per uno o più frammenti e non chiamare direttamente un layout.

I frammenti vengono creati per:

  1. consenti a Activity di utilizzare molti frammenti, per cambiarli tra loro, per riutilizzare queste unità ... == > il Fragment è totalmente dipendente dal Context di un'attività, quindi se ho bisogno di qualcosa di generico da poter riutilizzare e gestire in molte attività, posso creare i miei layout personalizzati o Views ... Non mi interesserà questo Complessità aggiuntiva Livello di sviluppo che i frammenti aggiungerebbero.

  2. una migliore gestione a diverse risoluzioni == > OK per tablet / telefoni in caso di processi lunghi che possiamo mostrare due (o più) frammenti nella stessa attività in compresse e uno per uno nei telefoni. Ma perché dovrei usare i frammenti sempre ?

  3. gestendo i callback per navigare tra Fragments (cioè: se l'utente è loggato, mostro un frammento altrimenti mostro un altro frammento). === > Prova solo a vedere quanti bug di Facebook SDK Log-in hanno per questo, per capire che è davvero (?) ...

  4. considerando che un'applicazione Android è basata su attività ... Aggiungendo altri cicli di vita nell'attività sarebbe meglio progettare un'applicazione ... Voglio dire che i moduli, gli scenari, la gestione dei dati e la connettività sarebbero essere meglio progettato, in questo modo. === > Questa è la risposta di qualcuno che è abituato a vedere l'SDK di Android e il framework Android con una visione di Fragments. Non penso che sia sbagliato, ma non sono sicuro che darà buoni risultati ... Ed è davvero astratto ...

==== > Perché dovrei complicare la mia vita, codificando di più, usandoli sempre? altrimenti, perché è una buona pratica se è solo uno strumento per alcuni casi? quali sono questi casi?

    
posta ahmed_khan_89 12.06.2014 - 12:19
fonte

3 risposte

4

Fragment è una sezione modulare di un'attività che ha il proprio ciclo di vita, riceve i propri eventi di input , che puoi aggiungere o rimuovere mentre l'attività è in esecuzione (una sorta di "attività secondaria" che puoi riutilizzare in diverse attività)

Oltre all'ovvio vantaggio dell'utilizzo dei frammenti, l'ottimizzazione dell'interfaccia utente tra diversi schermi, ti consente di gestire l'elaborazione in background dell'attività senza un componente dell'interfaccia utente visibile.

Ora ...

====> Why would I complicate my life, coding more...??

Anche se raccomandato, non è necessario a meno che non si preveda di controllare il ciclo di vita dei singoli elementi e / o di riutilizzare lo stato dello stack o la cronologia delle viste precedenti.

    
risposta data 07.07.2014 - 19:58
fonte
4

Se esiste un caso di utilizzo "gateway" per gli scettici sui frammenti, probabilmente è un dialogo. I metodi a lungo deprecati showDialog(...) , onCreateDialog(...) , ecc. Erano buoni in quanto il framework li chiamava a distruggere e ricreare automaticamente i dialoghi quando l'attività di hosting veniva distrutta e ricreata. Se crei le tue finestre di dialogo direttamente, devi gestirle tu stesso. Ma se usi DialogFragment , puoi ancora una volta lasciare che il framework li gestisca per te. In questo caso, i frammenti possono notevolmente semplificare la tua codifica.

    
risposta data 25.06.2015 - 07:24
fonte
0

Ho fatto questa domanda più di un anno fa.

Sto usando frammenti ogni giorno e lo consiglierei.

Prima di tutto, voglio dire che l'uso dei frammenti è solo un'opzione e sarà un riflesso da considerare una volta che inizi ad usarli.

I vantaggi:

1 / aiuta a modulare il codice in cui è possibile avere un flusso completo in un'attività, in frammenti separati. Esempio:  + lista / griglia & dettaglio,  + login e amp; registrazione & dimenticare la password,  + ecc. È fantastico avere un codice riutilizzabile, che puoi sempre copiare & passato in diversi progetti.

2 / hai un nuovo ciclo di vita, pieno di problemi, è vero, ma con dei vantaggi. Esempio: il frammento di istanza mantenuto è fantastico perché risolve il problema dell'orientamento.

3 / puoi gestire il flusso dei tuoi frammenti per eventi e ascoltatori dall'Attività.

4 / una pila di frammenti nella tua attività.

5 / usa la stessa barra delle azioni in molte schermate.

E molti altri ...

Sto ancora usando l'attività come solo contenitore a volte, specialmente per il case della fotocamera. Alcune API Android e alcune librerie di terze parti non sono facili da implementare in frammenti.

Bene, è come qualsiasi strumento, devi considerarlo e giudicare da solo se è meglio usarlo in un caso o in un altro.

Spero che questo possa aiutare !!!

    
risposta data 03.08.2015 - 04:36
fonte

Leggi altre domande sui tag