创建具有两个不同列的GridView

时间:2015-02-20 20:55:49

标签: android gridview android-recyclerview gridlayoutmanager

我试图创建一个包含两种不同类型项目的GridView。

前几项将占用整整一行。当用户继续滚动时,每行将开始显示两个项目,如下所示:

http://imgur.com/YFSUxVI

如何实现此类网格视图?使用iOS的UICollectionView很容易做到这一点,但我在Android上没有这么好运。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

此处的最佳解决方案是:尝试将RecyclerViewGridLayoutManager一起使用,并使用SpanSizeLookup设置列的范围。

你可以找到一个类似的问题here,并提供一个很好的例子。

基本上你应该实现回调SpanSizeLookup并根据项目的位置,或者更好的类型,你将设置正确的跨度。

mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            switch(mAdapter.getItemViewType(position)){
                case YourGridAdapter.TYPE_THREESPAN:
                    return 3;
                case YourGridAdapter.TYPE_ITEM:
                    return 1;
            }
        }
    });

如果您正在考虑创建自己的LayoutManager,请查看精彩的库TwoWay View