DEV Community

loading...

Small RecyclerView XML feature

devit951 profile image Ildarov ・1 min read

Did you know, that you can set RecyclerView layoutManager directly in XML, instead of always set RecyclerView layoutManager in the code?

Examples

Paste one of this attribute in your RecyclerView in XML.

For GridLayoutManager:
app:layoutManager="android.support.v7.widget.GridLayoutManager"

For LinearLayoutManager:
app:layoutManager="android.support.v7.widget.LinearLayoutManager"

And for StaggeredGridLayoutManager:
app:layoutManager="android.support.v7.widget.StaggeredGridLayoutManager"

Discussion (3)

pic
Editor guide
Collapse
johnson_cor profile image
Corey Johnson

This is neat! I wonder if it'd work with a custom LayoutManager as well?

Collapse
devit951 profile image
Ildarov Author

Hmmm...I didn't use a custom layout manager, so I can't say anything, but I think it should. If you going to do it, could you leave a result?

Collapse
johnson_cor profile image
Corey Johnson

So it looks like you can; as long as your layout manager defines the 4 parameter constructor:

public YourLayoutManager(Context context, AttributeSet attrs, int defStyleAttr,int defStyleRes)

Then in the xml layout, you just have to fully qualify your LayoutManager, so mine was

com.corey.testrecyclerview.ThreeColumnGridLayoutManager

I just had my layout manager extend grid layout manager and set the column count to 3 when the layout manager is created.