Android 分页grid,Android 网格分页布局PagerLayoutManager

PagerLayoutManager

具有分页功能的 Recyclerview 布局管理器,主打分页,可以替代部分场景下的网格布局,线性布局,以及一些简单的ViewPager,但也有一定的局限性,并不能适用于所有场景,请选择性使用。

另外,该库并不是特别完善,欢迎提交 Issues 或者 PR 来协助我完善。

1. 效果预览

687474703a2f2f7777312e73696e61696d672e636e2f6c617267652f3030355874646932677931666b6a637778677a7a7867333038633065706b6a6c2e676966 

ded69b32efd1ee5174954a82fd018ee0.gif

2. 支持的特性

网格布局,设置合适的行列数可以模拟线性布局或者ViewPager。

分页效果,支持自动回调页码的变化(总页数和当前页数)。

布局方向,支持横向滚动和垂直滚动。

方向切换,支持切换滚动方向。

支持电视,支持TV上按键翻页。

内存稳定,不会因为一次性添加大量的数据导致内存飙升或者严重卡顿。

使用简单,无侵入性,可以快速的将其他布局替换为该布局,也可以快速的移除该布局。

自动修正,当滚动到第3页,删除数据后内容只够2页,会自动修正当前页面为第2页。

3. 主要文件

名称

作用

/java/PagerGridLayoutManager.java

水平分页网格布局管理器。

/java/PagerGridSnapHelper.java

滚动辅助工具。

/java/PagerConfig.java

Pager配置,用于开关调试日志。

4. 使用方法

4.1 基本用法

注意:

1. 一定要在先设置 PagerGridLayoutManager, 之后再设置 PagerGridSnapHelper。

2. 注意名称 PagerGridSnapHelper 不是 PagerSnapHelper。

// 1.水平分页布局管理器

PagerGridLayoutManager layoutManager = new PagerGridLayoutManager(

2, 3, PagerGridLayoutManager.VERTICAL);

layoutManager.setPageListener(this); // 设置页面变化监听器

recyclerView.setLayoutManager(layoutManager);

// 2.设置滚动辅助工具

PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();

pageSnapHelper.attachToRecyclerView(recyclerView);

页面变化监听器

// 当总页数确定时的回调

@Override public void onPageSizeChanged(int pageSize) {

Log.e("TAG", "总页数 = " + pageSize);

}

// 当页面被选中时的回调(从 0 开始)

@Override public void onPageSelect(int pageIndex) {

Log.e("TAG", "选中页码 = " + (pageIndex+1));

}

4.2 其他设置

是否在滚动过程中回调页码变化。

// 如果不想在滚动个过程中回调页码变化,可以这样设置(v1.1.0-beta 以上版本支持)

layoutManager.setChangeSelectInScrolling(false);

切换滚动方向

注意:滚动过程中不可切换方向,设置无效。

mLayoutManager.setOrientationType(PagerGridLayoutManager.HORIZONTAL);

打开调试日志。

// 如果需要查看调试日志可以设置为true,一般情况忽略即可

PagerConfig.setShowLog(true);

5. 注意事项:

目前存在一个问题,使用的时候请务必给 RecyclerView 设置固定大小或者match_parent,如果不设置默认高度为 0 ,则任何内容都不会显示出来。

6. 添加方式

6.1 添加仓库

在项目的 build.gradle 文件中配置仓库地址。

allprojects {

repositories {

jcenter()

// 私有仓库地址

maven { url "http://lib.gcssloop.com/repository/gcssloop-central/" }

}

}

6.2 添加项目依赖

在需要添加依赖的 Module 下添加以下信息,使用方式和普通的远程仓库一样。

compile 'com.gcssloop.support:pagerlayoutmanager:1.3.1@aar'

7. 待优化

添加 scrollToPosition。

添加设置滚动速度。

版权信息:本站所有资源仅供学习与参考,请勿用于商业用途,如有侵犯您的版权,请及时联系客服,我们将尽快处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值