Android GridLayoutManager.setSpanSizeLookup的使用介绍

简介: Android GridLayoutManager.setSpanSizeLookup的使用介绍

前言:

使用setSpanSizeLookup后的效果图如下

对应的Activity代码如下,setSpanSizeLookup的具体解释已经在代码中给出:

public class GrideActivity extends AppCompatActivity implements GrideAdapter.OnItemClickListener {
    private ActivityGrideBinding binding;
    private GrideAdapter grideAdapter;
    private List<GrideModel> grideModels = new ArrayList<>();
    private static final String TAG = "GrideActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.setContentView(this, R.layout.activity_gride);
        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3, RecyclerView.VERTICAL, false);
        binding.rvList.setLayoutManager(gridLayoutManager);
        for (int i = 0; i < 20; i++) {
            grideModels.add(new GrideModel("https://tse3-mm.cn.bing.net/th/id/OIP-C.ezHUw2d5cvio6idA9t5zCwHaEK?w=302&h=180&c=7&r=0&o=5&dpr=1.3&pid=1.7", "Android开发"));
        }
        grideAdapter = new GrideAdapter(grideModels);
        grideAdapter.setOnItemClickListener(this);
        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {//列表项的占位规则
                Log.i(TAG, "getSpanSize,position:" + position);
                //返回该item所占的份数 那么下标为4的item占三份,那么则占据整个屏幕的宽。
                //注意一个item所占的份数,不能超过GridLayoutManager的spanCount
                return (1 + position) % 7 == 0 ? 3 : 1;
            }
        });
        binding.rvList.setAdapter(grideAdapter);
    }
    @Override
    public void onItemClick(int position) {
        ToastUtils.showShort(position);
    }
}


目录
相关文章
|
XML 搜索推荐 Java
Android Studio开发之借助FileProvider在应用之间共享文件讲解及实战(包括发送彩信,安装应用等 附源码超详细)
Android Studio开发之借助FileProvider在应用之间共享文件讲解及实战(包括发送彩信,安装应用等 附源码超详细)
405 0
|
Android开发
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等(二)
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
1201 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
存储 安全 物联网
Android经典实战之跳转到系统设置页面或其他系统应用页面大全
本文首发于公众号“AntDream”,关注获取更多技巧。文章总结了Android开发中跳转至系统设置页面的方法,包括设备信息、Wi-Fi、显示与声音设置等,并涉及应用详情与电池优化页面。通过简单的Intent动作即可实现,需注意权限与版本兼容性。每日进步,尽在“AntDream”。
1644 2
|
Android开发
Android studio 出现Plugin [id: ‘com.android.application‘, version: ‘8.1.0‘, apply: false] 问题解决办法
Android studio 出现Plugin [id: ‘com.android.application‘, version: ‘8.1.0‘, apply: false] 问题解决办法
6133 2
|
Android开发 索引
Android流布局实现筛选界面
Android流布局实现筛选界面
209 0
|
XML Android开发 UED
|
Dart 前端开发 JavaScript
Flutter for Web:跨平台移动与Web开发的新篇章
Flutter for Web是Google的开源UI工具包Flutter的延伸,用于构建高性能、高保真的跨平台应用,包括Web。它基于Dart语言和Flutter的核心框架,利用Skia渲染引擎通过WebAssembly在Web上运行。开发流程包括安装SDK、创建项目、编写Dart代码和部署。性能优化涉及减少渲染开销、代码压缩等。与传统Web框架相比,Flutter for Web在开发效率和性能上有优势,但兼容性和生态系统尚待完善。
442 0
|
SQL 存储 安全
开发实战(6)--对fofa收集的漏洞资产使用poc进行批量验证
主要还是围绕渗透测试的流程进行开发,一般在信息收集后,在渗透测试后,在发现通用型漏洞时,我们为了节省时间,可以通过写批量脚本来信息收集,然后使用poc来进行批量验证,本篇是一个编写批量验证python的示例.
|
Android开发
【RecyclerView】 十四、GridLayoutManager 网格布局管理器 ( GridLayoutManager.SpanSizeLookup 指定 item 元素占用网格个数 )
【RecyclerView】 十四、GridLayoutManager 网格布局管理器 ( GridLayoutManager.SpanSizeLookup 指定 item 元素占用网格个数 )
417 0
【RecyclerView】 十四、GridLayoutManager 网格布局管理器 ( GridLayoutManager.SpanSizeLookup 指定 item 元素占用网格个数 )