CardView layout_width=”match_parent” does not match parent RecyclerView width

The docs for inflate:

Inflate a new view hierarchy from the specified xml resource. Throws
InflateException if there is an error.

Parameters
resource ID for an XML layout resource to load (e.g.,
R.layout.main_page) root
view to be the parent of the
generated hierarchy (if attachToRoot is true), or else simply an
object that provides a set of LayoutParams values for root of the
returned hierarchy (if attachToRoot is false.)
attachToRoot Whether
the inflated hierarchy should be attached to the root parameter? If
false, root is only used to create the correct subclass of
LayoutParams for the root view in the XML. Returns The root View of
the inflated hierarchy. If root was supplied and attachToRoot is true,
this is root; otherwise it is the root of the inflated XML file.

It is important here to not supply true, but do supply the parent:

LayoutInflater.from(parent.getContext())
            .inflate(R.layout.card_listitem, parent, false);

Supplying the parent View lets the inflater know what layoutparams to use. Supplying the false parameter tells it to not attach it to the parent just yet. That is what the RecyclerView will do for you.

Leave a Comment