12

Sono in una sfida per costruire un layout simile a questo:Recycler View con più righe e colonne - Adatta come flusso formato [Android]

enter image description here

La mia prima intuizione era quella di utilizzare un RecyclerView con una adattatore che può gestire ogni oggetto e gonfiare il suo layout.

Finora, non così buono.

ho ottenuto questo layout finora:

enter image description here

posso abbattimento che sono quasi arrivati, ma in realtà ... ho trascorrere una settimana pensare a come renderlo migliore, o semplicemente come l'UI propone.

Alcuni miei tentativi erano

  1. Utilizzare un layout a griglia e cambiare il numero massimo colonne a seconda di quanti articoli ci sono sulla lista
  2. StaggeredGridLayoutManager suonava come un potente candidato per risolvere il problema e mi fanno felice , ma sfortunatamente quando ho provato ad usarlo mi rendo conto che abbiamo bisogno di passare un certo numero di spanCount (colonne) sul costruttore e ho trovato alcuni modi per ovviare a questa limitazione cambiando il numero di colonne di ogni riga, ma non mi piaceva il risultato finale, non era come ho visto in altre app come Foursquare quando hai impostato i tuoi interessi.
  3. Ho controllato questa libreria Flow Layout, ma non ho nemmeno iniziato a usarlo, perché non voglio perdere l'intero potere di visualizzazione del riciclatore e credo che ci sia un modo per farlo funzionare! ..... Pur sapendo che la libreria fa esattamente ciò di cui ho bisogno.

Ragazzi, non sono qui per cercare un po 'di pace del codice o qualcuno che faccia il mio lavoro. In realtà sto cercando la luce alla fine del tunnel.

+0

Il scaglionata effetto visualizzazione a griglia ... è che cosa ti perdi qui ? O c'è di più? – JanithaR

+0

Il costruttore della griglia con scaglionamento ha bisogno di un conteggio span quando eseguiamo l'istanziazione, non voglio correggere un numero di colonne, vorrei adattare il layout in base alla larghezza dell'elemento riga per riga –

+0

Prova questo. 'public final void onBindViewHolder (RecyclerView.ViewHolder viewHolder, int position) { StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams(); layoutParams.setFullSpan (true); } – JanithaR

risposta

5

Ciao se DNT desidera utilizzare recyclerview v'è un altro esempio di utilizzo libreria personalizzata che agisce come Lista GitHubLibrary TagLayout

  • Codice di esempio: -

mFlowLayout.setAdapter(new TagAdapter<String>(mVals) { @Override public View getView(FlowLayout parent, int position, String s) { TextView tv = (TextView) mInflater.inflate(R.layout.tv, mFlowLayout, false); tv.setText(s); return tv; } });

utilizzando il seguente codice è possibile pre selezione del set che si voleva: -

mAdapter.setSelectedList(1,3,5,7,8,9); 

mostrerà risultato come di seguito: -

enter image description here