I assume you want each chip to have enough width to wrap its content, and you do not want every chip in a given column to have the same width.
If so, you probably do not want to use GridLayoutManager. Essentially no matter what you do, it will still wind up defining some fixed column width (though you can set it up so that different columns have different widths). I believe a better choice would be FlexboxLayoutManager.
FlexboxLayout is a library from Google that allows you to specify a set of items and have them lay themselves out, wrapping as necessary. Find details here: https://github.com/google/flexbox-layout