首页

源码搜藏网

首页 > 安卓源码 > 控件分类 > 布局类Layouts >

Android 网格分页布局PagerLayoutManager

创建时间:2017-10-18 20:18  

Android 网格分页布局PagerLayoutManager
Android 网格分页布局PagerLayoutManager
暂无演示 立即下载

PagerLayoutManager

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

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

1. 效果预览

 

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. 待优化

上一篇:Android开发通用圆角布局
下一篇:没有了

相关内容

热门推荐