Android 网格分页布局PagerLayoutManager

时间:2017-10-18 20:18 来源:互联网 作者:源码搜藏收藏

  • 源码类别:布局类Layouts
  • 源码大小:未知
  • 编码格式:gbk,utf8,不限
  • 运行环境:Android studio
  • 广告推荐

PagerLayoutManager

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

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

1. 效果预览

 

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。
  •  添加设置滚动速度。
本站资源仅限于学习研究,严禁从事商业或者非法活动! 源码搜藏网所有源码来自互联网转载与用户上传分享,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!
下一篇:没有了

布局类Layouts下载排行

最新文章