Layout del cassetto e del multistrato

La mia applicazione utilizza un layout multistrato per visualizzare un elenco di assegnazioni. Ogni Assignment può essere inserita in una categoria di AssignmentCategory . Voglio utilizzare un DrawerLayout per visualizzare tutte le categorie Assignment in modo che l'utente possa passare facilmente tra le categorie diffirent.

Non ho riuscito a creare un tale layout. Nel tutorial ufficiale di DrawerLayout, DrawerLayoutActivity sostituisce un Fragment quando un utente fa clic su un elemento (nel mio caso una categoria di AssignmentCategory ). Il problema che mi affronto è che un layout a pannello multiplo richiede un FragmentActivity . Non so come creare un Fragment che contiene un layout multistrato. Qualcuno riuscì a farlo?

  • Come devo calcolare l'azimuth, il pitch, l'orientamento quando il mio dispositivo Android non è piatto?
  • È ansible modificare il colore di text su un Android SearchView?
  • modificare l'intento di pendingintent che viene utilizzato da un allarmatore
  • Android: Cattura un documento e scansiona con la camera
  • Interrompere il frammento di essere ricreato dopo il ripristino?
  • Come posso impostare correttamente Volley per scaricare le immagini da un URL
  • Come passare una string tra i frammenti in un viewpager
  • Encoder MediaCodec H264 non funzionante su dispositivi Snapdragon 800
  • Creazione di un SoftKeyboard con caratteri multipli / alternativi per chiave
  • Come faccio a eliminare il tasto nameValuePairs dal JSONObject?
  • Come disconnettersi / modificare l'account Twitter con Parse
  • La notifica della notifica utilizzando il jar non funziona
  • One Solution collect form web for “Layout del cassetto e del multistrato”

    La combinazione dei due progetti non dovrebbe essere troppo difficile. Nel codice di esempio l'esempio DrawerLayout sostituisce il frammento di contenuto ma non devi fare lo stesso, è sufficiente aggiornare lo stesso frammento per mostrare i dati corretti. Potresti implementare i due progetti in questo modo:

    • parte dal progetto di demo multi pane.
    • aggiornare le due attività del demo multi pane per estendere ActionBarActivity (v7), non è necessario estendere FragmentActivity
    • implementare il DrawerLayout (il codice di esempio dal progetto del cassetto) nell'attività dell'elenco di partenza ( DrawerLayout che non si desideri che il DrawerLayout nell'attività dei dettagli, ma la implementazione non dovrebbe essere un problema se lo si desidera).
    • il layout dell'attività di elenco di partenza sarà simile a questo (non dimenticare che è necessario implementare anche le modifiche di DrawerLayout activity_item_twopane.xml !):

       <DrawerLayout> <fragment android:id="@+id/item_list" .../> <ListView /> <!-- the list in the DrawerLayout--> </DrawerLayout> 
    • modificare l'implementazione DrawerItemClickListener modo che quando l'utente fa clic sull'elemento dell'elenco di cassetti che non crei e aggiunga un nuovo frammento di elenco, invece aggiornate il frammento di singolo elenco dal layout:

       AssignmentListFragment alf = (AssignmentListFragment) getSupportFragmentManager() .findFragmentById(R.id.item_list); if (alf != null && alf.isInLayout() && alf.getCurrentDisplayedCategory() != position) { alf.updateDataForCategory(position); // the update method setTitle(DummyContent.CATEGORIES[alf.getCurrentDisplayedCategory()]); } 
    • il metodo di aggiornamento sarebbe qualcosa di simile:

       /** * This method update the fragment's adapter to show the data for the new * category * * @param category * the index in the DummyContent.CATEGORIES arrays pointing to the * new category */ public void updateDataForCategory(int category) { mCurCategory = category; String categoryName = DummyContent.CATEGORIES[category]; List<DummyContent.Assigment> data = new ArrayList<Assigment>( DummyContent.ITEM_MAP.get(categoryName)); mAdapter.clear(); // clear the old dsata and add the new one! for (Assigment item : data) { mAdapter.add(item); } } public int getCurrentDisplayedCategory() { return mCurCategory; } 

      – vari altri piccoli cambiamenti

    Ho fatto un progetto di esempio per illustrare le modifiche di cui si può trovare qui .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.