我想建立像在Pinterest的应用程序在Android上的网格。
我开始延伸出的AdapterView<ListAdapter>
但我不能做很多事情的工作(例如反弹时的效果),所以,放弃的念头,延长后AbsListView
,现在我开始以为这是更好地扩展ListView
并覆盖layoutChildren()
方法。
你怎么看?
谢谢
我想建立像在Pinterest的应用程序在Android上的网格。
我开始延伸出的AdapterView<ListAdapter>
但我不能做很多事情的工作(例如反弹时的效果),所以,放弃的念头,延长后AbsListView
,现在我开始以为这是更好地扩展ListView
并覆盖layoutChildren()
方法。
你怎么看?
谢谢
我们不会被任何外部的库这是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上链接
我已经通过复制和更新Android的StaggeredGridView解决了这个。 https://github.com/maurycyw/StaggeredGridView 。 似乎创建你正在寻找的影响工作的伟大。 在此之前,直到我看到现在的实验StaggeredGridView我下楼复制Android的源到一个单独的库(这是我得到的工作)的兔子洞。 这是比我老的“BrickView”库的项目,所以我代替它要简单得多。
AntipodalWall是一个独立的库旨在提供一个所谓的“砖石”网格为Android的布局(很像Pinterest的应用程序)。
检查这个项目AntipodalWall
在我的项目我使用: https://github.com/GDG-Korea/PinterestLikeAdapterView
这是很容易使用它和它的内存消耗效率