Android Recycler View Horizontal Desplácese hasta el último elemento y muestre el primer elemento

Actualmente estoy trabajando en una vista de reciclador que tiene un desplazamiento horizontal.

Tengo una list que contiene estos valores:

{"2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", …}

y así sucesivamente, hasta 2017

Mi objective aquí es seleccionar el año en el centro

Todo funciona bien pero tengo 2 problemas aquí:

  1. No puedo desplazarme hacia el borde derecho, es como si la vista de reciclador tuviera su límite para desplazarse. Digamos que los 4 últimos artículos son "2014", "2015", "2016", "2017" . Solo puedo desplazarme hasta "2003". Por ahora, soluciono este problema añadiendo un maniquí años antes y después de la list. (muy hackish, pero no tan sólido)

  2. Quiero mostrar el primer hijo cuando el desplazamiento llega al final. Por ejemplo, cuando pueda desplazarme hasta finales de 2017 , quiero mostrar el primer elemento de la list justo al lado de 2017 y en este caso es "2001" . Por ejemplo: 2013 | 2014 | 2015 | 2016 | 2017 | 2001 | …

Según la respuesta anterior, no puede hacer que recyclerview se desplace como un círculo, desde el último elemento hasta el primer elemento. Por lo tanto, debe calcular exactamente el número de elementos y anular la interceptación ontouch para que la vista del reciclador logre el efecto que desea.

lo que deberías usar aquí es loop your recyclerview

en su adaptador anula getItemCount () para devolver algo grande como Integer.MAX_VALUE:

 @Override public int getItemCount() { return Integer.MAX_VALUE; } 

en onBindViewHolder () position divisor de module (%) por número de artículo real:

  @Override public void onBindViewHolder(MyViewHolder holder, int position) { int positionInList = position % dataList.size(); Item item = dataList.get(positionInList); //... } 

al final, coloca el elemento actual en algo en el medio (o de lo contrario, sería infinito solo en dirección descendente).

 // scroll to middle item recyclerView.getLayoutManager().scrollToPosition(Integer.MAX_VALUE / 2); 

Prueba esto,

 recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); recyclerView.getLayoutManager().scrollToPosition(5); 

puede poner su número de artículo aquí en lugar de 5, puede hacer (list.size () – 3) para un año específico.

  • RecyclerView Items no aparece hasta que lo desploop
  • DiffUtils y multi selección
  • Cómo implementar un reciclador de carga perezosa. Adaptador de vista como el reciclador de reino. Ver el adaptador usando kotlin.
  • ¿Cómo uso un onItemLongClickListener en mi actividad en Android?
  • Haga que los niños de RecyclerView coincidan con la altura de los padres cuando usan el constructor en lugar de inflar para crearlos
  • RecyclerView: implementa correctamente la eliminación de SnackBar UNDO (Kotlin)
  • Android solo estableceStackFromEnd solo si RecycleView / List es más grande que la pantalla
  • Selecciones no deseadas en RecyclerView
  • RecyclerView animation de elementos, se llama AnimationFinished, pero no está activado en AnimationStarted. ¿Por qué?
  • ¿Cómo agregar un oyente Onclick en un RecyclerView en Android Studio con Kotlin?
  • Android - Kotlin: el object debe declararse abstracto o implementar miembro abstracto