Así que lo que estoy tratando de ir es tener un escalonamiento de diseño, pero el primer elemento en la lista de necesidades que abarcan dos columnas. Las dos primeras filas son también una altura fija. Tengo todo funcionando excepto el primer elemento de la vinculación de dos columnas.

Estoy usando el RecyclerView.Adaptador con el StaggeredGridLayoutManager. No parece como que está fuera de la caja funcionalidad. Asumo que puede hacer un administrador de diseño personalizado es solo que no estoy seguro de por dónde empezar. He intentado buscar pero no encuentro nada acerca de cómo obtener elementos para abarcar varias columnas.

La imagen de abajo es lo que estoy buscando en la lista.

Abarcan varias columnas con RecyclerView

  • ¿Alguna vez encontrar una manera de lograr esto?
  • El primer Elemento siempre se extiende en dos columnas. Tuve que poner negativo en el margen derecho para obtener los resultados. El segundo elemento es un elemento ficticio con visibilidad conjunto INVISIBLE.
  • Es posible que se comparta el código acerca de esa solución? Estoy tratando de lograr el mismo resultado, pero sin éxito.
  • hice mi respuesta te ayude? Si es así, por favor podría aceptarlo? Gracias.
  • Hola, ¿podrías por favor publicar su adaptador de código, me estoy enfrentando pequeño problema.
  • Suerte con la puesta en marcha ? Estoy buscando una implementación similar.

InformationsquelleAutor DDukesterman | 2014-12-11

2 Comentarios

  1. 50

    Actualmente, StaggeredGridLayoutManager sólo admite puntos de vista que abarcan todas las columnas (para un verticalmente configurado el diseño), y no un número arbitrario de ellos.

    Si usted todavía desea para vincularlas a través de todas las columnas, usted debe hacer esto en la implementación del adaptador:

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

    en mi humilde opinión, StaggeredGridLayoutManager es todavía bajo un fuerte desarrollo y Google quiere que usemos para comentarios 🙁

    • intentar esto – getLayoutParams es devolver null. Cualquier persona de cualquier suerte?
    • getLayoutParams también fue regresar me null. Tal vez mi respuesta te puede ayudar.
    • Hmmm, eso no debería suceder en el momento onBindViewHolder se llama… tal vez usted tiene otro problema en otro lugar y son sólo workarounding ella.
    • Así es imposible hacerlo mediante el uso de GridLayoutManager ?
    • No muy ‘bajo un fuerte desarrollo’ como el StaggeredGridLayoutManager parece ser inalterable en su mayoría más de un año después.
    • Genial!!! Es bueno probar.
    • java.lang.ClassCastException: android.apoyo.v7.widget.RecyclerView$i no se puede convertir a android.apoyo.v7.widget.StaggeredGridLayoutManager

  2. 9

    Lo que hice para abarcar todas las columnas de un verticalmente configurado diseño fue crear nuevos LayoutParams y establezca la plena luz verdadera en la implementación del adaptador:

    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, int position) {
    
        StaggeredGridLayoutManager.LayoutParams layoutParams = new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        layoutParams.setFullSpan(true);
        viewHolder.itemView.setLayoutParams(layoutParams);
    }

Dejar respuesta

Please enter your comment!
Please enter your name here