Android solo estableceStackFromEnd solo si RecycleView / List es más grande que la pantalla

Tengo un RecyclerView que quiero comenzar a mostrar los elementos inferiores, así que estoy usando: myLayoutManager.setStackFromEnd(true) .

Funciona exactamente como quiero cuando hay suficientes elementos para llenar la pantalla, pero si solo hay unos pocos elementos en el RecyclerView, los empuja hacia abajo y deja espacio vacío en la parte superior de la pantalla.

¿Hay alguna forma de prevenir esto, o solo setStackFromEnd si el RecyclerView es más grande que la altura de la pantalla?

Aquí hay un ejemplo de lo que obtengo y lo que trato de get:

Lo que consigo Lo que quiero

Según su descripción, asumo que ha configurado la altura de RecyclerView como match_parent .

Entonces, debido a esto, lo que estás viendo es solo el comportamiento habitual. Cuando setStackFromEnd no se establece en true , su RecyclerView rellena sus vistas desde la parte superior (como se muestra en la image). Sin embargo, cuando configura la stack desde el final, se produce el comportamiento opuesto. Y, por lo tanto, ves el espacio vacío en la parte superior.

Para eliminar el espacio vacío, le sugiero que configure su altura de layout de RecyclerView en wrap_content . wrap_content se introdujo para RecyclerView en Android Support Library 23.2 . Debido a esto, su layout de RecyclerView solo ocuparía el espacio que necesita de acuerdo con el número de vistas secundarias.

Además, dependiendo de lo que esté tratando de lograr, también podría considerar setReverseLayout(true) . ¡Espero que esto ayude!

  • RecyclerView.ViewHolder no se vincula correctamente
  • Extensión de Kotlin no reconocida en el adaptador
  • My RecyclerView no se notifica adecuadamente
  • Compruebe si RecyclerView se desplaza hacia arriba (findFirstCompletelyVisibleItemPosition no funcionará)
  • La image no se muestra en Recyclerview usando Glide
  • DiffUtils y multi selección
  • RecyclerView animation de elementos, se llama AnimationFinished, pero no está activado en AnimationStarted. ¿Por qué?
  • kotlin RecyclerViewAdapter IndexOutOfBoundException
  • ¿Cómo uso un onItemLongClickListener en mi actividad en Android?
  • La animation SwipeRefreshLayout del primer bash de actualización se ejecuta sin parar
  • java.lang.IllegalStateException: TextView no debe ser nulo (Android / Kotlin)