【发布时间】:2019-06-25 17:25:03
【问题描述】:
【问题讨论】:
-
我担心你的问题会因为“太宽泛”而被关闭,请编辑它并向我们展示你到目前为止做了什么。
标签: android android-layout android-recyclerview expandablerecyclerview
【问题讨论】:
标签: android android-layout android-recyclerview expandablerecyclerview
通过覆盖 RecyclerView.ItemDecoration 解决了这个问题。 在适配器中,我们在单击时更改项目的属性,并为单击的卡片及其邻居调用 notifyItemChanged。
然后,我们将 Decorator 附加到 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);
}
【讨论】: