Obtener la vista de RecyclerView por AdapterPosition

Tengo un RecyclerView con vistas previas video en él. Cuando el usuario se desplaza, los videos se deben reproducir automáticamente en el reciclador. Los elementos visibles para el usuario (cuando el estado de desplazamiento es IDLE).

Así que he escrito un onScrollListener personalizado que pasa las posiciones que son visibles para el usuario como una matriz para el método startVideosOn(int[] positions) .

Pero el problema es cuando quiero obtener la vista por la posición (la posición es igual a la posición del adaptador). Cuando intento linearLayoutManager.getChildAt(index) consigo null cuando el 3ro artículo se exhibe, porque el RecyclerView tiene solamente 2 childs, que serán reciclados.

Entonces, ¿cómo puedo obtener la View del RecyclerView por la posición del adaptador?

Editar, este es el OnScrollListener:

 public abstract class AutoPlayRecyclerOnScrollListener extends RecyclerView.OnScrollListener { LinearLayoutManager linearLayoutManager; public AutoPlayRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager) { this.linearLayoutManager = linearLayoutManager; } @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { int firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition(); int lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition(); if (firstVisibleItemPosition != -1 && lastVisibleItemPosition != -1) { playOn(firstVisibleItemPosition, lastVisibleItemPosition); } } } private void playOn(int lower, int upper) { int[] completelyVisibleItems = new int[upper - lower + 1]; for (int i = lower, j = 0; i <= upper; i++, j++) { completelyVisibleItems[j] = i; } playOn(completelyVisibleItems); } public abstract void playOn(int[] items); } 

Si necesita obtener una View para una "posición" visible, utilice:

 RecyclerView#findViewHolderForAdapterPosition(int position) 

o

 RecyclerView#findViewHolderForLayoutPosition(int position) 

El ViewHolder devuelto mantendrá la View que desea

  • ¿Hay problemas en la vista Web de Android para SVG? Nivel API 16 +
  • ¿Es posible cambiar el navegador / motor predeterminado para la vista Web de Android?
  • Android Webview goback () problema con el método loadDataWithBaseURL
  • Android: icono del indicador de cambio y tamaño de la lista expandible utilizada para la navegación
  • SurfaceView con vista previa de cámara no se destruye
  • Las vistas agregadas dinámicamente desaparecen en orientación en Android
  • Cómo iniciar una actividad desde la vista personalizada
  • Android expandablelistview, expanda la vista sólo al hacer clic en el indicador de grupo, abra una nueva actividad si hace clic en cualquier lugar, pero groupindicator
  • ICS Spinner ("desplegable" en lugar de diálogo) en versiones anteriores de Android
  • ExpandableListView - la indicación de grupo es extensible para ajustarse al tamaño del texto
  • Vista de Android WebView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.