问题描述
我想实现一些类似于 Instagram 在那里的用户页面的方式,底部是一个图像网格,它根据内容滚动,因为我一直在阅读有关如何实现这一点的信息,我读过它可能是一个在recyclerview 中使用gridview 很麻烦,所以我的问题是,这可以使用仅在卡片行上的recycler 视图来完成,并根据从数据库调用返回的项目数在代码中进行扩展。 我已经包含了我所描述的基本图像。 或者我是否必须使用卡片网格来实现这一点。
如果有帮助,我确实有一个位于列表上方的自定义标题,我希望它可以滚动,就像 Instagram 那样。
1楼
有两种方法:
- 使用已实现标头的库。
我是这个库。 有了这个,使用以下方法实现标头相当容易:
GridLayoutManager glm =
new GridLayoutManager(context, spanCount); // make it into a grid
adapter = new Adapter(); // your adapter that contains the grid items
WrapAdapter wrapAdapter = new WrapAdapter(adapter); // wrap with the library
wrapAdapter.addHeader(header) // that's your header view
gridLayoutManager.setSpanSizeLookup(
wrapAdapter.createSpanSizeLookup(spanCount)); // this is needed for the header width
recyclerView.setLayoutManager(glm);
recyclerView.setAdapter(wrapAdapter);
- 不同的是做库在内部做的事情,将设置为 recyclerview 并在其上设置自定义告诉 recyclerview 使用第一个项目(标题)的完整跨度计数,并为其他项目使用值 1 .
我用谷歌搜索了 15 秒,这个链接似乎展示了如何做这第二种方式 (或者你可以检查库的源代码)