LinearLayoutManager setReverseLayout () == true, но стек элементов снизу

Кажется, это было бы простое решение, но кажется, что настройка

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); 

Кажется также, чтобы элементы складывались снизу

Я попытался установить setStackFromBottom в false, но это ничего не делало, что было бы лучшим способом изменить порядок позиций, но все же заполнить сверху? Должен ли я использовать класс Custom Comparator вместо этого? Я надеялся, что это будет более простой процесс, чем создание другого класса.

Solutions Collecting From Web of "LinearLayoutManager setReverseLayout () == true, но стек элементов снизу"

Из документов для setReverseLayout

Используется для обхода объекта и его расположения. Это ведет себя аналогично изменению макета для просмотров RTL. Когда установлено значение true, первый элемент выложен в конце пользовательского интерфейса, второй элемент выложен перед ним и т. Д. Для горизонтальных макетов это зависит от направления макета. Если установлено значение «Истина», если RecyclerView – LTR, то это будет макет из RTL, если RecyclerView} – RTL, он будет макет из LTR. Если вы ищете точное поведение setStackFromBottom(boolean) , используйте setStackFromEnd(boolean)

Итак, попробуйте также использовать setStackFromEnd (boolean) в вашем экземпляре LinearLayoutManager,

 LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity()); mLayoutManager.setReverseLayout(true); mLayoutManager.setStackFromEnd(true); 

Принятый ответ работает хорошо, и я преодолел трудности, чтобы заставить его работать, поскольку я получаю can not resolve method setReverseLayout ошибку can not resolve method setReverseLayout .

Затем, после поиска решений, я обнаружил, что там была глупая ошибка. Я использовал RecyclerView.LayoutManager вместо LinearLayoutManager .

Поэтому я решил снять с себя путаницы здесь, мне нужно ответить на это.

Не используйте RecyclerView.LayoutManager вместо LinerarLayoutManager

 // 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);