Я видел где-то способ заставить RecyclerView
показывать ViewHolders
снизу вверх. Теперь я не могу найти его нигде (через полчаса, пройдя через RecyclerView
, RecyclerAdapter
, LayoutManager
...).
Сделать Recycler View show rows from bottom
Ответ 1
Это LinearLayoutManager.setStackFromEnd(true)
, который вы ищете?
Edit
Выключает LinearLayoutManager.setReverseLayout(true)
делает трюк. В любом случае, читатель может попробовать попробовать каждый из методов и комбинацию обоих, чтобы получить необходимый эффект.
Ответ 2
Если вы используете LinearLayoutManager, создайте третий параметр (reverseLayout) false
LinearLayoutManager linearLayoutManager =
new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
Ответ 3
Вы можете достичь этой задачи, добавив две строки в код xml.
app:stackFromEnd="true"
app:reverseLayout="true"
Это будет работать как все чат-приложения.
Ответ 4
Вот решение в Котлине
val llm = LinearLayoutManager(this)
llm.stackFromEnd = true // items gravity sticks to bottom
llm.reverseLayout = false // item list sorting (new messages start from the bottom)
rv_chat_history.layoutManager = llm
Или, если вам нравится метод применения:
recycler.apply {
layoutManager = LinearLayoutManager(this).apply {
stackFromEnd = true
reverseLayout = true
}
}
Ответ 5
Решение по вашему запросу:
LinearLayoutManager layoutManager=
new LinearLayoutManager(getApplicationContext(),LinearLayoutManager.VERTICAL,true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
В приведенном выше коде recyclerView является идентификатором RecyclerView, а layoutManager является объектом LinearLayoutManager.