答案 0 :(得分:0)
该问题通过重写RecyclerView.ItemDecoration解决。 在适配器中,我们在单击时更改项目的属性,并为被单击的卡及其邻居调用notifyItemChanged。
然后,将装饰器附加到RecylceView(在分配适配器之前)。
gridView = findViewById(R.id.gridview_words_titles);
gridView.addItemDecoration(new OverlapDecoration());
然后,在OverlapDecoration类中之后,我们可以进行所有需要重叠的卡片更改。 就我而言,我只是展开矩形取决于它是成对的。
View layout = view.findViewById(R.id.layout_words_full);
ViewGroup.LayoutParams params = layout.getLayoutParams();
params.width = (int) (width_px - 15 * scale);
然后
int horizOverlap;
if (itemPosition % 2 == 0) {
horizOverlap = (int) ((width_px - 20 * scale) / 2);
outRect.set(-horizOverlap, 0, 0, 0);
} else {
horizOverlap = (int) ((width_px - 5 * scale) / 2);
outRect.set(0, 0, -horizOverlap, 0);
}