open RecyclerView. LayoutParams! generateLayoutParams(c: Context!, attrs: AttributeSet!) Create a LayoutParams object suitable for this LayoutManager from an inflated layout resource.
To create a custom layout manager, extend the RecyclerView. LayoutManager class. Now add a RecyclerView in your layout like this. Once you have added a RecyclerView widget to your layout, obtain a handle to the object, connect it to a layout manager, and attach an adapter for the data to be displayed.
A RecyclerView.LayoutManager implementation that lays out items in a grid for leanback VerticalGridView and HorizontalGridView . LinearLayoutManager. A RecyclerView.LayoutManager implementation which provides similar functionality to ListView .
Take LinearLayout in your RecyclerView 's item row layout then give android:layout_gravity="center" to LinearLayout . For each row of images you have to take different LinearLayout .
As you can check in the doc:
Class name of the
Layout Manager
to be used.The class must extend
androidx.recyclerview.widget.RecyclerViewView$LayoutManager
and have either a default constructor or constructor with the signature(android.content.Context, android.util.AttributeSet, int, int)
If the name starts with a
'.'
, application package is prefixed. Else, if the name contains a'.'
, the classname is assumed to be a full class name. Else, the recycler view package (androidx.appcompat.widget
) is prefixed
With androidx you can use:
<androidx.recyclerview.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager">
With the support libraries you can use:
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.GridLayoutManager" >
Also you can add these attributes:
android:orientation
= "horizontal|vertical"
: to control the orientation of the LayoutManager (eg:LinearLayoutManager
)app:spanCount
: to set the number of columns for GridLayoutManager
Example:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2"
...>
or:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:orientation="vertical"
...>
You can also add them using the tools
namespace (i.e. tools:orientation
and tools:layoutManager
) and then it only impacts the IDE preview and you can continue setting those values in code.
if you want use it with LinearLayoutManager
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" >
that equivalent to
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(mLayoutManager);
And I came here looking for androidx
version though it was pretty easy to figure out, here it is
LinearLayoutManager:
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
Example:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
GridLayoutManager:
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
Example:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:spanCount="2"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>
As you can see in examples above you can control the orientation from within xml
using
android:orientation="vertical"
and
android:orientation="horizontal"
And to set the number of columns for GridLayoutManager using
app:spanCount="2"
The most common ones that I use are:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical" app:spanCount="3"/>
And:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical"/>
It's recommended to set listitem
, so that you'd see how it could look in the preview of the layout editor.
If you want to have the order reversed though, I think you have to do it in code instead, and use "tools" in XML if you really want to see something...
This worked for me - just add app:layoutManager="LinearLayoutManager"
and you're good to go
<android.support.v7.widget.RecyclerView
android:id="@+id/recordItemList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clipToPadding="false"
android:scrollbars="none"
app:layoutManager="LinearLayoutManager"
app:stackFromEnd="true"
app:reverseLayout="true"/>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With