Androidで高さを固定し幅の異なったviewをよしなにタイル状に配置する

RecyclerViewでタイル状に表示するときには、GridLayoutを使って表示する事が多いが、今回は「ハッシュタグ」のような横幅が可変のviewをmaxlineが決まった状態でよしなに並べて、横にスクロールできるようにしたかったのでGridLayoutだとうまく行かなかった。

developer.android.com

GridLayoutでやったが、やってほしいこととしては、敷き詰めにviewが横に可変するような Textview 出会ったためうまく隙間を調整し敷き詰めてほしかったが、GridLayoutではそれが出来なかった。

そこでうまく折り返しをしてくれる flexbox-layout を検討 github.com

ColもしくはRowに対して折り返ししてくれるlayoutであり、これを試してみた。 しかし、今回はmaxの高さを指定したく、それよりも高くなってしまう場合は横にスクロールできるようにしたいので、これもやりたい実装とは違った。

今回の実装の要件を満たすためにか下記の手段で実装した RecyclerView + StaggeredGridLayoutManager

developer.android.com