Sto usando RecyclerView
con il manager GridLayout
per rendere il layout di prenotazione del posto come i viaggi.Vista Recycler con Gridlayout Manager
Il mio problema è come rilevare automaticamente lo spancount quando la colonna è casuale?
Conosco spanCount = recyclerViewWidth/singleItemWidth;
, ma il problema è singleItemWidth
è diverso, poiché la larghezza del sedile è diversa.
Questo è il layout desiderato che voglio:
... ma Attualmente sto ottenendo qualcosa di simile:
Questo è il codice che ho' m utilizzando per organizzare il layout del sedile:
gridLayoutManager=new GridLayoutManager(this,totalRows, LinearLayoutManager.VERTICAL,
false);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int rows=Integer.parseInt(upperlist.get(position).get("row"));
return (rows);///(int) (mRecyclerView.getMeasuredWidth()/ 10);
}
});
mRecyclerView.setLayoutManager(gridLayoutManager);
MyAdapter myAdapter=new MyAdapter(this,gridArray);
... dove upperlist
tenere questi valori:
[{cols=8, seatNumber=29U, row=4, zindex=1},
{cols=6,seatNumber=23U, row=4, zindex=1},
{cols=4,seatNumber=21U,row=4, zindex=1},
{cols=2, seatNumber=11U, row=4, zindex=1},
{cols=0,seatNumber=9U,row=4, zindex=1},
{cols=8,seatNumber=25U, row=2, zindex=1},
{cols=6,seatNumber=17U, row=2, zindex=1},
{cols=4,seatNumber=13U, row=2, zindex=1},
{cols=2,seatNumber=5U, row=2, zindex=1},
{cols=10, seatNumber=D2U,row=2, zindex=1},
{cols=0, seatNumber=1U, row=2, zindex=1},
{cols=8, seatNumber=26U, row=1, zindex=1},
{cols=6,seatNumber=18U, row=1, zindex=1},
{cols=4,seatNumber=14U, row=1, zindex=1},
{cols=2,seatNumber=6U, row=1, zindex=1},
{cols=0,seatNumber=2U, row=1, zindex=1}]
Questa è una lista unica, dove sto avendo valori diversi per righe e colonne. Ho quindi bisogno di un metodo generalizzato che possa funzionare su tutti i layout.
ogni cose guarda bene, ma come definire un elemento vuoto (-> viewType) e come aggiungere addEmptyElements (! ...); ... come dovrei sapere di avere n numero di vista empt richiesta – Tufan
Per quanto riguarda il viewtype, questa risposta potrebbe aiutare: http://stackoverflow.com/a/26245463/1974562 Per come aggiungere elementi vuoti, dovresti creare il metodo "addEmptyElements (...)" e riempire tutti gli spazi che non hanno "letto" con elementi vuoti. Purtroppo non c'è modo di farlo facilmente, quindi dovrai ad es.scorrere l'elenco, estrarre tutte le posizioni che non sono occupate da un letto e aggiungere elementi vuoti in queste posizioni. Puoi anche cambiare la struttura dei dati in qualcosa che ti consente di gestirlo più facilmente (ad esempio raggruppare tutti gli articoli di una riga in un oggetto "Riga") – Johannes