Esto parece que sería una solución fácil, pero parece que la configuración de

private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private LinearLayoutManager mLayoutManager;

.... //More code

    mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);

    //Add item decoration
    mRecyclerView.addItemDecoration(new SpacesItemDecoration(DIVIDER_SPACE));

    //use this setting to improve performance if you know that changes
    //in content do not change the layout size of the RecyclerView
    mRecyclerView.setHasFixedSize(true);

    //use a linear layout manager
    mLayoutManager = new LinearLayoutManager(getActivity());
    mLayoutManager.setReverseLayout(true); //THIS ALSO SETS setStackFromBottom to true
    mRecyclerView.setLayoutManager(mLayoutManager);

Parece también establecer los elementos de la pila de la parte inferior

Traté de establecer setStackFromBottom a falso, pero que no hacen nada, ¿cuál sería la mejor manera de invertir el orden de los elementos, pero todavía pueblan desde el principio? Debo usar un Comparador de clase en su lugar? Tenía la esperanza de que este sería un proceso más fácil que la creación de otra clase.

InformationsquelleAutor AndyRoid | 2014-12-31

4 Comentarios

  1. 110

    de la documentación para el setReverseLayout

    Utilizan para revertir elemento transversal y diseño de la orden. Este se comporta similar a la de cambio de diseño para RTL vistas. Cuando se establece en true, el primer elemento es puesto al final de la interfaz de usuario, el segundo elemento es puesto ante él, etc. Horizontal diseños, que depende de la dirección de diseño. Cuando se establece en true, Si RecyclerView es LTR, de lo que será el diseño de RTL, si RecyclerView} es RTL, es el diseño de LTR. Si usted está buscando exactamente el mismo comportamiento de setStackFromBottom(boolean), uso setStackFromEnd(boolean)

    Es así, pruebe también el uso de setStackFromEnd(boolean) en su LinearLayoutManager ejemplo,

    LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
    mLayoutManager.setReverseLayout(true);
    mLayoutManager.setStackFromEnd(true);
    • Buen trabajo, que ERA fácil 🙂
    • Gracias, probado ambos métodos por separado, ni siquiera tiene una idea sobre el uso de ellos para obtener el resultado 🙂
    • no funciona para mí….cambia la pila también
    • Me estoy poniendo can not resolve method setReverseLayout de error.
    • comprobar su versión del sdk (min y destino) y dependencias (reciclador de vista de apoyo lib) utilizados en el proyecto.
    • Gracias por el comentario. Mi problema era un tonto un. Yo estaba usando RecyclerView.LayoutManager en lugar de LinearLayoutManager.
    • Esto es bueno, pero no baja hasta el final para mostrar los artículos más nuevos
    • ¿por qué? Cuando se llama a stackfromEnd(true), la lista se llena de su contenido a partir de la parte inferior de la vista. Si desea mover la posición de la lista al final de la lista, hay maneras de hacerlo y que ha sido cuestionado y respondió en otros posts.
    • si ambos setStackFromEnd() y setReverseLayout() están haciendo el mismo trabajo, entonces ¿por qué usar los dos? ¿Hay alguna otra razón para llamar a ambos de estos métodos juntos?
    • después de establecer setStackFromEnd = true, setReverseLayout comportamiento dejar de trabajar. Por favor, ayudar.

  2. 29

    La aceptó responder funciona bien y me fui a través de una dificultad para que funcione como yo estaba can not resolve method setReverseLayout de error.

    A continuación, después de la búsqueda de soluciones que he encontrado no era un tonto error por ahí. Yo estaba usando RecyclerView.LayoutManager en lugar de LinearLayoutManager.

    Me ocurrió la idea de eliminar las confusiones alrededor de aquí tengo que poner como respuesta.

    No utilice RecyclerView.LayoutManager en lugar de LinearLayoutManager

    //Declare your RecyclerView and the LinearLayoutManager like this 
    private RecyclerView mRecyclerView;
    private LinearLayoutManager mLayoutManager;

    //Now set the properties of the LinearLayoutManager 
    mLayoutManager = new LinearLayoutManager(MainActivity.this);
    mLayoutManager.setReverseLayout(true);
    mLayoutManager.setStackFromEnd(true);
    
    //And now set it to the RecyclerView
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(yourAdapter);
    • ¿hay algún inconveniente en el uso de LinearLayoutManager en lugar de RecyclerView.LayoutManager?
  3. 1

    He encontrado un método eficaz para resolver esto mediante el uso de xml:

    app:layoutManager="android.support.v7.widget.LinearLayoutManager"
    app:stackFromEnd="true"
  4. 0

    Estoy usando un RecyclerView con horizontal orientación y por alguna razón desconocida(s) aceptado respuesta no trabajo para mí cuando traté de invertir el diseño con setReverseLayout(true).

    pero hacerlo a través de XML funcionaba bien.

                    <androidx.recyclerview.widget.RecyclerView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:id="@+id/recycler_view" 
                        android:orientation="horizontal"
                        app:reverseLayout="true"
                        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>

Dejar respuesta

Please enter your comment!
Please enter your name here