我正在尝试制作一个水平滚动网格.它有两行.第二行是偏移的(一个项目的宽度的一半,但这是微不足道的计算,这里无关紧要).
我目前正在使用RecyclerView和https://github.com/antoniolg/RecyclerViewExtensions/tree/master/library/src/main/java/com/antonioleiva/recyclerviewextensions的GridLayoutManager
然而,抵消证明是非常困难的.
它应该看起来像
有没有人建议让第二行如上图所示错开?
最佳答案
使用带有Itemdecoration的StaggeredGridLayoutManager,它将偏移量添加到适配器位置0处的项目.您将获得所需的输出. (通过getItemOffsets).
或者,代替Itemdecoration,当调用onBind时,您可以设置第一个项目的宽度,使其在左侧包含间隙.
或者,代替Itemdecoration,当调用onBind时,您可以设置第一个项目的宽度,使其在左侧包含间隙.
如果您的数据集发生更改,请不要调用notifyDataSetChanged,它将重置SGLM中的历史计算.相反,使用详细的通知事件(如notifyItemRangeInserted),以便SGLM能够在不重置位置的情况下重新计算布局.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。