6

Ho un NavigationView utilizzato come menu slide-in. Ognuna di queste voci di menu è un caso d'uso in sé, quindi tendo ad usare attività contenenti diversi frammenti.Attività o frammenti in NavigationView?

Ma quasi tutti gli esempi di NavigationView/NavigationDrawer utilizzano frammenti, quindi non so cosa usare qui.

Ho pensato che i diversi casi d'uso dovrebbero essere "incapsulati" nelle proprie attività, quindi non capisco perché il Navigation[View/Drawer] usi frammenti. E questo mi porta alla mia domanda: per uno Navigation[View/Drawer] contenente casi d'uso completamente separati, dovrei collegarmi ad attività o frammenti?

+0

il cassetto di navigazione si inserisce in Attività e tutte le voci di menu sono (il più delle volte) frammenti. quando fai clic su un elemento nel cassetto, recupera il frammento e lo sostituisce con quello corrente. Se usi le attività per ogni voce di menu devi mettere il '' cassetto di navigazione' in ognuna delle 'attività' –

+1

@MurtazaKhursheedHussain non è un fatto, potrebbe avere un'attività di base che ha sempre la vista di navigazione. – k0sh

+0

@ k0sh Questo è ridondante. E swalkner, ogni esempio là fuori usa frammenti per una ragione. Questo è ciò che raccomandano gli sviluppatori di Android. IMO hai solo bisogno di liberarti della forte idea che hai di incapsulare un caso d'uso nella propria attività e pensare un po 'liberamente e capire i benefici dell'uso dei frammenti. – JanithaR

risposta

0

il NavigationDrawer ei contenuti sono tutti solo Views all'interno della gerarchia di viste Activity.

L'utilizzo dei frammenti di solito viene visualizzato nei tutorial perché è possibile incapsulare ogni elemento all'interno di un frammento, mentre i frammenti sono i soliti consigli di Google, anche se sono un rompicoglo e presentano orribili inconvenienti relativi all'animazione.

Ma la risposta diretta alla tua domanda è: è tutta una questione di struttura e organizzazione e in realtà non importa come lo fai, perché alla fine sono solo viste nella gerarchia di viste Activity.

  • È possibile "manualmente" ingrandire le viste e inserire l'area del contenuto.
  • Si utilizzano i frammenti per separare le viste e la logica e il proprio contenitore.
  • È possibile utilizzare attività con contenuti diversi e lo stesso NavigationDrawer.
1

I posted a similar question

ho creato circa 4-5 applicazioni con il progetto di formato medio-grande. Ho usato i frammenti per i clic del menu di navigazione e ho dovuto gestire molti eventi relativi al ciclo di vita, perdite di memoria e cose di merda. Le prestazioni diminuiscono e l'app diventa lenta.

Quindi, in una delle attività di I Attività utilizzate per ciascun clic del menu di navigazione, trattandolo separatamente Entità/Modulo. Questa attività utilizzerebbe quindi i frammenti se avessero avuto visualizzazioni secondarie.

In questo modo ho avuto un'ottima app, meno problemi e ho potuto concentrarmi su Business Logic piuttosto che mantenere i frammenti.

Anche se Google consiglia Frammenti, ma non mi sono mai piaciuti, mi mettono sempre nei guai e gestirli è un disastro.

Nel mio progetto corrente ho creato una BaseActivity che implementa la navigazione e tutte le altre attività la estendono.

Problemi correlati