2013-05-22 16 views
7

Stavo cercando di esplorare il nuovo cassetto di navigazione standardizzato da Google. Finalmente abbiamo anche il codice ufficiale.Android Navigation Drawer

Stavo cercando di capire il modo migliore per implementare lo stesso nella mia app.

mia struttura della app è la seguente

-MainActivity 
----Featured Tab 
----Favorites Tab 

Facendo clic su di un qualsiasi elemento in entrambe le schede mi porterà sotto

ContentActivity 
----Info Tab 
----Map Tab 

Ora quello che sono confuso è tutto quanto sopra deve essere collocato nella nuova vista per il cassetto Nav.

E come la struttura Nav cassetto è qualcosa di simile

un'attività con un layout che contiene navdraw-view e stagista contiene contenuti-layout e il layout cassetto. Facendo clic su un'opzione nel cassetto dovrei sostituire il layout del contenuto tutti insieme o dovrei aprire una nuova attività?

risposta

3

Come descritto nella documentazione per Creating a Navigation Drawer in "Gestisci eventi di spostamento di navigazione", funziona con Fragments. Quando l'utente sceglie un'opzione, si sostituisce solo il frammento del contenuto, consentendo al cassetto di navigazione di rimanere dove si trova. Se segui la documentazione, dovresti stare bene.

Se non si sono ancora incontrati frammenti, vale la pena leggerli su the documentation for Fragments. Sono una specie di attività simili, con alcune differenze per consentire ad Android di mostrare più frammenti alla volta.

+0

Diciamo che ho più schede nella seconda opzione del cassetto nav. ho bisogno di costruire le schede dinamicamente per sostituire tutto il contenuto da quello dello schermo? –

+1

Non importa se la seconda attività ha o meno schede: ogni schermata sarà un frammento separato che è possibile configurare con XML simile a una vista. Potrebbe essere utile leggere su Fragments in generale, perché il cassetto di navigazione è solo un caso particolare di utilizzo dei frammenti. – Nick

+0

grazie lo leggerò. sembra che possiamo avere le schede all'interno dei frammenti –

1

La risposta è che si potrebbe fare sia, è possibile cambiare il contenuto, con un nuovo frammento, o avviare una nuova attività.

Sei libero di fare tutto ciò che vuoi nel metodo selectItem (posizione).

La documentazione ufficiale utilizza Fragments nel loro esempio, ma non è richiesta. Puoi fare tutto ciò che vuoi con questo metodo (inizia con un messaggio Toast, o Logcat, per vedere cosa succede quando l'elemento viene cliccato).

+3

A volte mi sembra che la documentazione di Google sia eccessivamente complicata: penso che l'aggiunta di frammenti a questo esempio renda più difficile seguirlo. Penso anche che l'utilizzo di una matrice esterna per gli elementi della lista sia eccessivamente complicato (per questo esempio). – Booger

+1

Se lancio nuove attività e desidero avere nuovamente il cassetto di navigazione in tali attività, come posso implementarlo senza riscrivere il codice di visualizzazione del cassetto di navigazione ancora e ancora? Ho provato con BaseActivity e le altre attività che vengono chiamate dal cassetto di navigazione sono sottoclassi da esso. Il problema è che se ho un layout diverso per le nuove funzionalità, non ho accesso al layout del cassetto di navigazione. Devo includere questo layout del cassetto di navigazione nei layout delle attività .. ?? –

+0

Inizia una nuova domanda a riguardo. Questo è un nuovo problema, non indirizzabile nei commenti. – Booger

Problemi correlati