Make Recycler View show rows from bottom
AndroidAndroid Problem Overview
I saw somewhere method to make RecyclerView
show ViewHolders
from bottom to top. Now, i can't find it anywhere (after half of hour going through RecyclerView
, RecyclerAdapter
, LayoutManager
...).
Android Solutions
Solution 1 - Android
Is it LinearLayoutManager.setStackFromEnd(true)
you are looking for?
Edit
Turns out LinearLayoutManager.setReverseLayout(true)
does the trick. Either way, the reader may want to try each of the methods and the combination of both to get the needed effect.
Solution 2 - Android
Here is the solution in Kotlin
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
Or if you like the apply method:
recycler.apply {
layoutManager = LinearLayoutManager(this).apply {
stackFromEnd = true
reverseLayout = false
}
}
Solution 3 - Android
You can achieve this task by adding two lines to the xml code.
app:stackFromEnd="false"
app:reverseLayout="true"
This will work as all chat apps.
Solution 4 - Android
If you are using LinearLayoutManager make third param (reverseLayout) false
LinearLayoutManager linearLayoutManager =
new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
Solution 5 - Android
Solution on your query:
LinearLayoutManager layoutManager=
new LinearLayoutManager(getApplicationContext(),LinearLayoutManager.VERTICAL,true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
In above code recyclerView is the id of RecyclerView and layoutManager is object of LinearLayoutManager.
Solution 6 - Android
In my case, it was achieved by setting stackFromEnd = true
, reverseLayout = false
on the LinearLayoutManager
and setting scrollToPosition(index_of_last_element)
recyclerView?.apply {
layoutManager = LinearLayoutManager(context).apply {
stackFromEnd = true
reverseLayout = false
}
}
recyclerView?.scrollToPosition(equations.size - 1)
Solution 7 - Android
> This is working for me in kotlin > > recyclerView?.scrollToPosition(mArrayList.size - 1)