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.

  • extensiones kotlin-android en ViewHolder
  • DiffUtils y multi selección
  • Llame a getMeasunetworkingWidth () o getWidth () para RecyclerView return 0 en data binding
  • Color de background e image arrastrando en Scroll en recyclerView Android usando Group Adaptor
  • ¿Por qué onclick en los ítems de RecyclerView se devuelve una identificación de artículo incorrecta?
  • Cómo proteger el oyente de desplazamiento sin fin de un reciclador
  • De la documentation de kotlin no está claro para mí el operador como
  • Selecciones no deseadas en RecyclerView
  • ReciclarVer list de elementos que no aparecen
  • ¿Cómo agregar una image más como un button al final de mi RecyclerView en Android?
  • RecyclerView animation de elementos, se llama AnimationFinished, pero no está activado en AnimationStarted. ¿Por qué?