RecyclerView - 水平,两行网格,第二行偏移

Eri*_*ran 5 android android-gridview android-recyclerview

我正在尝试制作一个水平滚动网格.它有两行.第二行是偏移的(一个项目的宽度的一半,但这是微不足道的计算,这里无关紧要).

我目前使用RecyclerView和GridLayoutManager从https://github.com/antoniolg/RecyclerViewExtensions/tree/master/library/src/main/java/com/antonioleiva/recyclerviewextensions

然而,抵消证明是非常困难的.

它应该看起来像 1

有没有人建议让第二行如上图所示错开?

yig*_*git 5

将StaggeredGridLayoutManager与 ItemDecoration 一起使用,它会将偏移量添加到适配器位置 0 处的项目。您将获得所需的输出。(通过getItemOffsets)。或者,当调用 onBind 时,您可以设置第一个项目的宽度,使其包含左侧的间隙,而不是 ItemDecoration。

如果您的数据集发生更改,请不要调用 notifyDataSetChanged,这将重置 SGLM 中的历史计算。相反,请使用诸如notifyItemRangeInserted之类的详细通知事件,以便 SGLM 能够在不重置位置的情况下重新计算布局。