具有多个行和列的Recycler视图 – 像Flow Layout 一样的AutoFit

我正在构建一个像这样的布局的挑战:

在此处输入图像描述

我的第一个见解是使用带有适配器的RecyclerView,该适配器可以处理每个项目并使其布局膨胀。

到目前为止,还不是那么好。

到目前为止我得到了这个布局:

在此处输入图像描述

我可以感觉到我几乎就在那里,但是真的……我花了一个星期的时间考虑如何让它变得更好,或者就像UI提出的那样。

我的一些尝试是

  1. 使用网格布局并根据列表中的项目数更改最大列数
  2. StaggeredGridLayoutManager听起来像是一个强大的候选者来修复它并让我开心,但不幸的是,当我尝试使用它时,我意识到我们需要在构造函数上传递一些spanCount(列),我find了一些方法来解决这个限制,改变了每行的列数,但我不喜欢最终的结果,不像我在Foursquare等其他应用中看到的那样设置您的兴趣。
  3. 我查看了这个库Flow Layout ,但我甚至没有开始使用它,因为我不想失去整个回收站的视图function,我相信有一种方法可以使它工作! …..即使知道图书馆完全符合我的需要。

伙计们,我不是在这里寻找一些已经完成的代码和平或有人来完成我的工作。 其实我正在寻找隧道尽头的灯光。

    您好,如果您不想使用recyclerview,还有另一个使用自定义库的示例,其行为类似于List GitHubLibrary TagLayout

    • 示例代码

       mFlowLayout.setAdapter(new TagAdapter(mVals) { @Override public View getView(FlowLayout parent, int position, String s) { TextView tv = (TextView) mInflater.inflate(R.layout.tv, mFlowLayout, false); tv.setText(s); return tv; } }); 

    使用以下代码,您可以预先设置所需的选择:

     mAdapter.setSelectedList(1,3,5,7,8,9); 

    将显示如下结果: –

    在此处输入图像描述