RecyclerView + SnapHelper实现炫酷ViewPager效果
目录
什么是SnapHelper
SnapHelper是Google 在 Android 24.2.0 的support 包中添加的对RecyclerView的拓展,结合RecyclerView使用,能很方便的做出一些炫酷的效果。
SnapHelper的使用方法
SnapHelper是一个抽象类 Google 内置了两个默认实现类,LinearSnapHelper和PagerSnapHelper。
- LinearSnapHelper:使当前Item居中显示,常用场景是横向的RecyclerView, 类似ViewPager效果,但是又可以快速滑动多个条目。
LinearLayoutManager manager = new LinearLayoutManager(getContext()); manager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.setLayoutManager(manager); LinearSnapHelper snapHelper = new LinearSnapHelper(); snapHelper.attachToRecyclerView(mRecyclerView);
- PagerSnapHelper:使RecyclerView 像ViewPager一样的效果,每次只能滑动一页。
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); mRecycleview.setLayoutManager(linearLayoutManager); PagerSnapHelper snapHelper = new PagerSnapHelper(); snapHelper.attachToRecyclerView(mRecycleview);
这里我只使用了PagerSnapHelper做了一个案例:
项目源码: https://github.com/myml666/SnapHelperDemo
个人技术博客:https://myml666.github.io

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用Charles对Android App的https请求进行抓包
本文背景 公司新项目要求抓取目前市面上一些热门App的数据,经过研究发现很多App的网络请求都使用https进行数据传输,这样问题就来了,http使用明文传输所有请求都能拦截到,而https请求无法拦截。 所以这里我们要使用Charles来抓取https,但是笔者看了网上很多使用iOS设备进行抓取https的文章,经测试iOS8/10/11均无法进行正常抓取,即使信任证书也不行。 经过笔者的不断尝试,终于在Android5.0上成功抓取了https。研究后发现,在Android7.0以下可以正常使用Charles抓取。Android7.0以上应该是默认屏蔽了此种方法。 Charles安装 这里给出官网下载的链接 如果需要破解文件点击这里 安装破解过程可以查看这篇文章 Charles配置 配置电脑端的根证书 打开Charles,我这里使用的是v4.2.5版本: 安装根证书 Mac需要设置信任证书 安装后会弹出钥匙串访问界面,如图: 双击证书,弹出证书详细界面,点击『信任』选项,然后将所有设置为始终信任,如图: 在手机端配置根证书 在电脑端选择安装移动端的证书: 选择后会显示IP与端口号,...
- 下一篇
Android笔记(二) | Activity的启动模式
启动模式 在这里,首先要提到一个名词——任务栈(Task),数据结构中的栈我们都很熟悉,而Android系统采用栈的结构来管理应用程序运行过程中所启动的Activity,即任务栈。知道这一点,对于我们理解启动模式已经足够了。 standard(标准模式):系统的默认启动模式,每次启动一个Activity,都会重新创建一个实例,无论这个实例是否已经被创建。 通常,当我们使用显式Intent启动一个standard模式的Activity时: Intent intent = new Intent(MainActivity.this, NextActivty.class); startActivity(intent); NextActivity会进入MainActivity所在的栈中,即被启动的Activity会进入启动它的那个Activity所在的任务栈中。 这是一种典型的多实例模式,一个任务栈中可以有多个实例,每个实例也可以属于不同的任务栈。 注意:当我们用ApplicationContext启动一个standard模式的Activity时会报错,这是因为standard模式的Act...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G