Pinterest 就像 Android 中的 Grid

2023-12-26

我想构建一个类似于 Android 上 Pinterest 应用程序中的网格。

我开始延长AdapterView<ListAdapter>但我无法让很多事情发挥作用(例如过度滚动效果),所以在放弃扩展的想法之后AbsListView,现在我开始考虑最好延长ListView并覆盖layoutChildren() method.

你怎么认为?

Thanks


我们不需要任何外部库,因为 Android 的原生 RecyclerView 只需更改 RecyclerView 的布局管理器即可实现 Pinterest 砖石布局

mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
RecyclerAdapter adapter = new RecyclerAdapter(this);
mRecyclerView.setAdapter(adapter);

凉爽的。这很简单,但是我的 LinearLayout 上的边距似乎不起作用。所以这里有一个快速修复方法。

SpacesItemDecoration decoration = new SpacesItemDecoration(16);
mRecyclerView.addItemDecoration(decoration);

SpacesItemDecoration 类:

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private final int mSpace;

public SpacesItemDecoration(int space) {
    this.mSpace = space;
}

@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
    outRect.left = mSpace;
    outRect.right = mSpace;
    outRect.bottom = mSpace;

    // Add top margin only for the first item to avoid double space between items
    if (parent.getChildAdapterPosition(view) == 0)
        outRect.top = mSpace;
    }
}

示例的 Github 链接 https://github.com/Suleiman19/Masonry

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pinterest 就像 Android 中的 Grid 的相关文章

随机推荐