2013-04-25 10 views
13

Mi chiedevo come mostrare l'istantanea dei miei appunti, liste di controllo, immagini nella vista griglia. Non ho problemi a creare la visualizzazione a griglia, ma creare un'anteprima di esso è la sfida che sto affrontando proprio ora poiché ho bisogno di aggiungere diversi tipi di viste (testo, lista di controllo, vista immagine) alla griglia in base al momento della creazione. Funziona bene per un singolo tipo di visualizzazione come l'immagine o solo il testo.Android: mostra schede come layout come in Google Keep

O in altre parole. Come posso aggiungere dinamicamente le diverse viste all'adattatore GridView?

Tutto o qualsiasi aiuto è apprezzato.

Grazie.

enter image description here

+2

Scarica questa git https://github.com/gabrielemariotti/androiddev/ tree/master/GuiExample Usa StaggeredGridView, segui questo link http://gmariotti.blogspot.in/2013/03/gui-like-google-keep.html?view=sidebar –

+0

Non sto parlando della GUI. Voglio sapere come mostrare un'anteprima dei miei articoli in GridView. Sono a conoscenza del blog di GMariotti. Grazie. – buggydroid

+2

Non vedo l'ora di ottenere la risposta! – Fatih

risposta

3

che sicuramente non utilizzare una GridView per Google Mantenere - ma probabilmente un Adapter comunque.

di utilizzare diversi Visualizzazioni con l'adattatore è possibile utilizzare diversi tipi Vista:

  1. Override getViewTypeCount() per restituire il numero di Tipi sostenete.
  2. Restituire il tipo appropriato in getItemViewType(int position) per questo articolo specifico.
  3. Creare la vista corretta in getView(int position, View convertView, ViewGroup parent).

Ricordare che le regole per il riciclaggio, ViewHolder e così via si applicano ancora. Per tipi multipli, il riciclaggio avviene solo per il tipo corretto.

Marcus Körnershared a gist by Jake Wharton on G+ recently che potrebbe essere utile.

1

Più che probabile Google utilizza qualcosa di simile a GridLayout, se non in realtà utilizza un GridLayout.

È probabile che il layout venga creato anche a livello di codice per consentire ai widget di essere di dimensioni diverse in base al contenuto visualizzato.

1
recyclerView= (RecyclerView) findViewById(R.id.recycler); 
recyclerView.setLayoutManager(new     
StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL)); 

     initData(); 
     MasonryAdapter adapter=new MasonryAdapter(productList); 
     recyclerView.setAdapter(adapter); 

     SpacesItemDecoration decoration=new SpacesItemDecoration(16); 
     recyclerView.addItemDecoration(decoration); 
+0

che cos'è SpacesItemDecoration? – Senhor

Problemi correlati