android - 创建具有两个不同列的 GridView

标签 android gridview android-recyclerview gridlayoutmanager

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

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

http://imgur.com/YFSUxVI

如何实现这种 GridView ?使用 iOS 的 UICollectionView 很容易做到这一点,但是我在 Android 上没有太多运气。任何帮助将不胜感激!

最佳答案

这里最好的解决方案是:尝试使用 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

关于android - 创建具有两个不同列的 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638022/

相关文章:

android - 尝试链接时应用程序未显示在admob中?

.net - Visual Studio 2010 - WPF/Silverlight 和内置网格

android - Picasso 的 GridView 无法加载图像

asp.net - ASP.NET Gridview 控件中事件的触发顺序是什么?

java - 滚动 RecyclerView 时出现滞后/错误的 y 坐标(OnscrollListener)

android - RecyclerView 内容落后而不是上面的 TextView

android - 滚动时如何重置 RecyclerView Viewholder 布局

Android Studio编辑器红色警告-Suspend : Thread Log message: No

Android fragment 和独立线程

android - Webview 不是每次都加载