DEV Community

Ildarov
Ildarov

Posted on

Small RecyclerView XML feature

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"

Top comments (3)

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

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 • Edited

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.