App: stackFromEnd para RecyclerView no funciona en xml?
Tengo un RecyclerView definido como:
<android.support.v7.widget.RecyclerView android:id="@+id/message_list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/message_input" android:layout_alignParentTop="true" app:stackFromEnd="true" />
El código relacionado también es común:
- ¿Cómo puedo acceder al visor de un elemento en una vista de reciclador?
- No puedo compilar mi proyecto android
- Android RecyclerView que se encuentra en un fragmento que se encuentra en un ViewPager no vuelve a cargar / refrescar las vistas si se alcanza el setOffscreenPageLimit
- Recyclerview de Android vs ListView con el usuario
- Error: El hijo especificado ya tiene un padre. Debe llamar a removeView () en el padre del niño primero
LinearLayoutManager layoutManager = new LinearLayoutManager(this); //layoutManager.setStackFromEnd(true); mRecyclerView.setLayoutManager(layoutManager);
Sin embargo, cuando agrego un elemento RecyclerView
, no respeta la app:stackFromEnd="true"
. Por otro lado, si descomente y uso layoutManager.setStackFromEnd(true);
Programatically, trabaja muy bien. ¿Cuál es el problema que me falta? Cualquier idea es bienvenida.
- No se puede escribir un algoritmo para filtrar elementos en un RecyclerView basado en un tiempo guardado con cada elemento
- RecyclerView GridLayoutManager con el encabezado de ancho completo
- Android ViewPager con RecyclerView funciona incorrectamente dentro de BottomSheet
- Cuando getItemCount y método getItemViewType se llaman en Recycler Adapter
- ¿Cómo crear RecyclerView con múltiples tipos de vista?
- Efecto de ondulación de Android anulado por el estado seleccionado
- Problemas para recrear listas de diseño de materiales con licencia en Android
- Vista de reciclador - cambia el tamaño de la vista de elemento mientras se desplaza (para efecto de carrusel)
Me encontré con algo similar. El problema es que cuando el RecyclerView está inflado, lee el atributo.
Pero entonces usted está asignando un nuevo LinearLayoutManager que se crea en el código java. Este nuevo gestor no tiene el atributo stackFromEnd establecido en true (por defecto a false).
stackFromEnd
es un atributo del gestor, no el RecyclerView
.
En mi caso tengo esto:
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/list" app:stackFromEnd = "true" app:layoutManager="LinearLayoutManager" </android.support.v7.widget.RecyclerView>
En su código xml no tiene el atributo app:layoutManager
así que no estoy seguro de qué gestor se crea para usted en la inflación.
Parece que Android no reconoce la app:stackFromEnd="true"
. Tal vez lo pones en el lugar equivocado. setStackFromEnd(Boolean)
realiza el mismo trabajo, pero de forma programática.
Según la documentación:
public void setStackFromEnd(boolean stackFromEnd)
Soporte de compatibilidad para
setStackFromBottom(boolean)
y
public void setStackFromBottom (boolean stackFromBottom)
Se agrega en el nivel 1 de la API Cuando la pila de la parte inferior se establece en true, la lista completa su contenido desde la parte inferior de la vista.
Parámetros
stackFromBottom
true
para fijar el contenido de la vista en el borde inferior,false
para fijar el contenido de la vista en el borde superior
Lee esto:
http://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom(boolean)
- Volver a seleccionar el elemento de menú NavigationView correcto después de pulsar el botón Atrás
- Consulta SQLite: Seleccione la consulta con la cláusula BETWEEN