Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo llenar RecyclerView con GridLayoutManager de derecha a izquierda

Estoy tratando de llenar algunos datos en un RecyclerView con GridLayoutManager :

 GridLayoutManager layoutManager = new GridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false); 

Esto llenará los datos en la cuadrícula de izquierda a derecha . El primer elemento se colocará en el lugar superior izquierdo, etc.

Pero la aplicación que estoy desarrollando está diseñada para un lenguaje RTL, así que necesito que se llene de derecha a izquierda .

Traté de cambiar el último argumento a true . Pero simplemente se desplaza el RecyclerView todo el camino hacia abajo.

También establecer el atributo layoutDirection para RecyclerView no funciona (sin considerar que mi API min es 16 y este atributo se agrega para API17 +):

 <android.support.v7.widget.RecyclerView android:id="@+id/grid" android:layoutDirection="rtl" android:layout_width="match_parent" android:layout_height="match_parent"/> 

¿Cómo puedo crear una cuadrícula de derecha a izquierda usando RecyclerView ?

  • Detener elementos de moverse cuando se utiliza StaggeredGridLayoutManager
  • CoordinatorLayout con RecyclerView
  • Buscar a través de RecyclerView usando Searchview
  • Recyclerview exterior no recibe eventos de desplazamiento de Recyclerview interno
  • Eliminación del indicador de foco de RecycleView en Android
  • Recyclerview con múltiples temporizadores de cuenta regresiva causa parpadeo
  • RecyclerView, StaggeredGridLayoutManager Actualizar el error
  • RecyclerView desplazamiento sobre inserto
  • 3 Solutions collect form web for “¿Cómo puedo llenar RecyclerView con GridLayoutManager de derecha a izquierda”

    Cree una clase que GridLayoutMAnager y isLayoutRTL() método isLayoutRTL() siguiente manera:

     public class RtlGridLayoutManager extends GridLayoutManager { public RtlGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } public RtlGridLayoutManager(Context context, int spanCount) { super(context, spanCount); } public RtlGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) { super(context, spanCount, orientation, reverseLayout); } @Override protected boolean isLayoutRTL(){ return true; } } 

    En la cara de él, GridLayouManager debe llenar las filas de la derecha cuando getLayoutDirection() da ViewCompat.LAYOUT_DIRECTION_RTL . Normalmente, esta dirección será heredada RecyclerView's contenedor RecyclerView's .

    Pero si esto no funciona como se esperaba, o necesita empujarlo hacia abajo a la API 16, o algún dispositivo con implementación incorrecta de soporte de RTL, simplemente puede tirar de GridLayoutManager de github y usar un administrador personalizado que sintonice a su gusto.

    Puede ser suficiente extender la acción GridLayoutManager y reemplazar layoutChunk () .

    Su método muy simple, sólo llamada setReverseLayout como,

     GridLayoutManager layoutManager = new GridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false); layoutManager.setReverseLayout(true); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.