StaggeredGridLayoutManager
non sembra consentire la personalizzazione di una cella larghezza o di più colonne (tranne la campata intera) per l'orientamento verticale.LayoutManager per RecyclerView Grid con larghezza cella diversa
quello che è un preferito LayoutManager
per l'organizzazione di cellule come indicato sopra?
P.S. Voglio solo sapere come personalizzare la cella larghezza e non l'altezza con StaggeredGridLayoutManager
. So che l'altezza può essere personalizzata come implementata in questo sample.
public class VerticalStaggeredGridFragment extends RecyclerFragment {
public static VerticalStaggeredGridFragment newInstance() {
VerticalStaggeredGridFragment fragment = new VerticalStaggeredGridFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
@Override
protected RecyclerView.LayoutManager getLayoutManager() {
return new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
}
@Override
protected RecyclerView.ItemDecoration getItemDecoration() {
return new InsetDecoration(getActivity());
}
@Override
protected int getDefaultItemCount() {
return 100;
}
@Override
protected SimpleAdapter getAdapter() {
return new SimpleStaggeredAdapter();
}
}
adattatore
public class SimpleStaggeredAdapter extends SimpleAdapter {
@Override
public void onBindViewHolder(VerticalItemHolder itemHolder, int position) {
super.onBindViewHolder(itemHolder, position);
final View itemView = itemHolder.itemView;
if (position % 4 == 0) {
int height = itemView.getContext().getResources()
.getDimensionPixelSize(R.dimen.card_staggered_height);
itemView.setMinimumHeight(height);
} else {
itemView.setMinimumHeight(0);
}
}
}
itemView.setMinimumWidth(customWidth)
non influisce larghezza della cella.
Per semplificare, aggiorno il mio layout di griglia per
Come aumentare cella 0 larghezza rispetto alla cella 1 in una StaggeredGridLayoutManager
o altro gestore di layout?
Siete in grado di impostare larghezza della cella a 1/4 o 3/4 o dicono dimensione specifica in dp per una griglia con dimensioni arco di 2? Sono stato in grado di impostare l'altezza personalizzata ma non la larghezza con scaglionedgridlayoutmanager. Noterai che le celle nella mia immagine non sono di uguale larghezza nella prima riga. Proverò anche la tua soluzione tra qualche tempo e tornerò. – random
Questo è esattamente ciò che ho fatto se si verifica il metodoCreateViewHolder. –
È possibile aggiornare il codice nella risposta per l'immagine della griglia che ho fornito? Non sarò in grado di provare la tua soluzione fino a domani. – random