Android Adapter分页显示异常: 首页数据在屏幕内全显示,无法上滑分页
前情提要:
Android 端Adapter分页,下拉刷新,上滑分页,
原有流程:上滑时,滑动触及底部,触发Adapter的onScrolled的方法
异常情况:第一页数据完全显示,导致上滑时,未触及底部,未触发Adapter的onScrolled的方法
修复:
第一页数据完全显示时,上滑无法触发Adapter的onScrolled,
判断,如果第一页数据在当前屏幕完全显示,则将数据的分页处理,放在onScrollStateChanged方法中处理
- 判断当前Adapter的第一项item的高度(仅适用于,列表的每一项item高度一致)
- 触发onScrollStateChanged方法时,判断当前itemHeight * count 是否大于 当前RecyclerView的完全高度(取的是RecyclerView的父级的高度)
- 如果大于,则不做处理,此时会触发onSrolled方法
- 如果小于,则进行分页数据处理
myRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (adapter.getItemHeight() * (adapter.getItemCount() - 1) < parentLayout.getHeight() && newState == SCROLL_STATE_IDLE) {
// 数据一页显示完全,进行分页处理
...
}
} @Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int lastItemPosition = mLayoutManager.findLastCompletelyVisibleItemPosition();
if (lastItemPosition + 1 == adapter.getItemCount() && dy > 0) {
...
}
}
});
Android Adapter分页显示异常: 首页数据在屏幕内全显示,无法上滑分页的更多相关文章
- iview 中table列 一列显示多个数据(后台返回数组显示在列内)
一.首先出现的是比较复杂的一种情况(多个key) 1.首先页面显示效果如下 2.后台返回数据格式如下: 3.在iview中table的columns中的render函数: 4.具体代码 render: ...
- jquery ajax请求方式与提示用户正在处理请稍等,等待数据返回时loading的显示
1.jquery ajax请求方式与提示用户正在处理请稍等 为了提高用户体验度,我们通常会给出 “正在处理,请稍等!”诸如此类的提示.我们可通过设置$.ajax()下的参数beforeSend()来实 ...
- Android 利用代码在屏幕中间位置显示ProgressDialog和ProgressBar
package cc.testprogressdialog; import android.os.Bundle; import android.view.Gravity; import android ...
- Android商城开发系列(七)—— 使用RecyclerView展示首页数据
前面我们讲到了使用OkHttp请求网络和FastJson解析数据了,接下来我们就开始把获取到的数据通过数据适配器展示在页面上了.Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合 ...
- 2016/3/27 分页 共X条数据 本页x条 本页从x-y条 x/y页 首页 上一页 123456 下一页 末页 pagego echo $page->fpage(7,6,5,4,3,2,1,0);
显示效果: fpage.class.php <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; / ...
- matplotlib处理数据可是化的时候出现中文显示异常,为[][]的解决方法
1.在使用matplotlib处理数据实现可是化操作的时候,处于语言习惯,经常会使用中文做图表备注,而中文显示会出现异常,如下图: 中文显示异常 那如何解决呢,实际上我们只需要在代码中添加两行内容即可 ...
- Android应用开发基础之三:数据存储和界面展现(三)
生成XML文件备份短信 创建几个虚拟的短信对象,存在list中 备份数据通常都是备份至sd卡 使用StringBuffer拼接字符串 把整个xml文件所有节点append到sb对象里 sb.appen ...
- Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片
Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片 自定义ADPager 自定义水平滚动的ScrollView效仿ViewPager 当遇到要在Vie ...
- Android编程中的5种数据存储方式
Android编程中的5种数据存储方式 作者:牛奶.不加糖 字体:[增加 减小] 类型:转载 时间:2015-12-03我要评论 这篇文章主要介绍了Android编程中的5种数据存储方式,结合实例形式 ...
- (转载)Android之三种网络请求解析数据(最佳案例)
[置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报 分类: Gson.Gson解析(1) 版权声明:本文为博主原创 ...
随机推荐
- 【Grafana】Grafana模板自定义-1-创建选择框
如何创建选择框 第一步:编辑模板 第二步:配置变量 配置说明: General: [Name]变量名,后面模板中如果要按条件筛选,会用到这个变量名. [Type]类型,目前没仔细研究,使用默认的Que ...
- ajax过程?
1. 创建ajax对象var xhr = new XMLHttpRequest(); 2.告诉Ajax对象要向哪发送请求,以什么方式发送 //请求方式 请求地址xhr.open('get' ...
- SpringBoot 整合Easy Poi 下载Excel(标题带批注)、导出Excel(带图片)、导入Excel(校验参数,批注导出),附案例源码
导读 日常开发过程中,经常遇到Excel导入.导出等功能,其中导入逻辑相对麻烦些,还涉及到参数的校验,然后将错误信息批注导出.之前写过EasyExcel导入(参数校验,带批注)(点我直达1.点我直达2 ...
- Java 集合框架Collection
集合容器主要用于保存对象,主要分类有三种List.Set.Map List有序.可重复的集合 常见的List有ArrayList.Vector.LinkedList等类 Set无序.不可重复 常见Se ...
- 史上最详细的Composer安装tp5教程
Composer安装tp5教程1.下载composer先介绍几个网站Composer官网https://getcomposer.org/ Composer中文网http://www.phpcompos ...
- Django日期字段默认值default=timezone.now
如果你确实希望默认值是当前日期和时间,Django 提供了一个方便的函数 django.utils.timezone.now 来实现这一目的. 你可以这样调整你的模型,以使用当前日期和时间作为默认值: ...
- Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯
巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modbus协议之间的转换,使得Profinet协议设备与Modbus协议设备进行连接并能够相互通信. 通过使用巴图 ...
- 题解:P10723 [GESP202406 七级] 黑白翻转
背景 汗流浃背了. 分析 容易想到一个显然的思路:以任意节点为根,开始遍历.如果一个节点的子树里面有黑点,那么它必须保留,否则如果它是白点,则可以删去. 但这个方法很容易举出反例: 在这颗树中,如果以 ...
- 学习笔记--Java中static关键字
Java中static关键字 static基础用法 什么时候成员变量声明为实例变量 所有对象的这个属性随对象而变化 什么时候成员变量声明为静态变量 所有对象都是这个属性 静态变量在类加载的时候初始化, ...
- 写写Redis十大类型GEO(地理空间)的常用命令
又是一个用于处理sql性能的类型,这个类型的核心思想就是把三维的地球变成二维的坐标,再将二维的坐标换成一维的点块,最后将一维的点块转化成base32编码 类型就是zset, 在shell的启动命令后加 ...