【问题标题】:RecycleView 2 columns with horizontally expandable cardRecyclerView 2列带水平扩展卡
【发布时间】:2019-06-25 17:25:03
【问题描述】:

我正在寻找如何使用 recycleview 和布局管理器来实现这一点,如屏幕截图所示。

具有 2 列的网格(相同大小)。每张卡片都可以通过点击重叠其水平邻居来展开。并且单击它会折叠回原来的状态。

【问题讨论】:

标签: android android-layout android-recyclerview expandablerecyclerview


【解决方案1】:

通过覆盖 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-19
    • 2011-08-05
    • 2019-01-20
    • 2018-02-26
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    相关资源
    最近更新 更多