关于pulltorefreshListView快速滑动留白问题等部分小问题

Android下拉刷新控件SwipeRefreshLayout实战指南 下拉刷新是移动应用中最基础的用户交互模式之一,其本质是将用户滑动意图转化为数据加载行为并提供符合Material Design规范的视觉反馈。SwipeRefreshLayout作为Android官方提供的轻量级嵌套滚动刷新组件,基于NestedScrollingParent/Child协议实现,无需侵入业务逻辑即可完成触发检测、状态管理与动画渲染。相比早期PullToRefresh等第三方库,它原生兼容RecyclerView、WebView等现代滚动容器,具备低耦合、高稳定性与强可定制性等工程优势。本文 阅读详情

相信用过PullToRefreshListView的同志们都会遇到很多奇奇怪怪的问题,项目打包异常、部分手机快速滑动留白问题。


今天就发现并基本解决了问题,所以分享一下。


首先是打包异常,会显示你的项目异常,但是在你clear之后又好了,在手机上运行飞快!!!报的错大概是PullToRefreshListView语言类异常,在此需要在项目中添加一段xml代码:


<?xml version="1.0" encoding="UTF-8"?> 
<lint> 
    <issue id="ExtraTranslation" severity="ignore" /> 
    <issue id="MissingRegistered" severity="ignore" /> 
    <issue id="MissingTranslation" severity="ignore" /> 
</lint> 

这里需要将改代码添加到自己的项目中 lint.xml 。后会发现,问题解决了。


第二个是没有发现Item长按监听器,这在很多项目中经常使用的竟然不存在!!!

当然在查看很多帖子后大部分会让你在源码中添加长按监听器,来实现该功能,对于这其实并不需要。

在PullToRefreshListView中需要得到ListVIew来实现长按监听:


listView.getRefreshableView().setOnItemLongClickListener(onItemLongClickListener);


使用上述代码就可以实现长按监听功能了。


最后一个也是很麻烦的一个,一开始我用三星手机调试时并没有发现该问题,最后项目要结束的时候拿华为手机一测(这里并没有说华为手机不好,适配问题)。发现在快速滑动的时候,我滑动的越快,留白处越大,最大是占PullToRefreshListView控件的一半。发现这个问题,上网也找了解决方案,发现并不是都会实用。因为Android手机的多样性导致适配效果的不同。最后没办法想了个不是很好的解决方案:


首先是在布局上需要添加两行代码,来让用户在快速滑动时使其在顶端或低端暂时停留:

 xmlns:app="http://schemas.android.com/apk/res-auto"


android:overScrollMode="never"
        app:ptrShowIndicator="false"
 

这里可以解决部分手机的留白问题。


而还有部分手机如我的测试机华为,就对此很无奈了,需要对滑动状态进行监听来强制控制上下拉模式,使其停留:

OnScrollListener onScrollListener = new OnScrollListener() {

			@Override
			public void onScrollStateChanged(AbsListView view, int scrollState) {

				switch (scrollState) {
				case PullToRefreshListView.SCROLL_STATE_FLING:
				case PullToRefreshListView.SCROLL_STATE_TOUCH_SCROLL:// 滑动或快速滑动使其禁止上下拉
					listView.setMode(Mode.DISABLED);
					break;
				case PullToRefreshListView.SCROLL_STATE_IDLE:
					
					if (mailCount == index) {
						listView.setMode(Mode.PULL_FROM_START);// 滑到加载网络数据结束
					} else {
						listView.setMode(Mode.BOTH); // 否则使其上下拉效果打开
					}
					break;
				}
				listView.onRefreshComplete();
			}

			@Override
			public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

			}
		};

在对PulltoRefreshListView添加该监听器后,发现问题得以缓解,是缓解,因为留白问题并不是很多,在快速滑动时也会有小小部分的留白,不过这没什么,在滑到低端时在此滑动就会进行加载效果。在该监听器中还需要进行多次逻辑处理,按业务需要来编写,这只是我自己的大概思路。

目前只能这样了,如果有更好的方法不吝赐教,谢谢!!!


手把手教你用AFL挖掘C程序漏洞:从安装到实战(附常见错误排查) 本文详细介绍了如何使用American Fuzzy Lop (AFL)对C/C++程序进行模糊测试,从环境准备、目标程序插桩编译、初始语料库构建到实战运行与结果分析。重点讲解了AFL的安装、常见错误排查(如核心转储配置、执行速度优化)以及提升测试效率的高级策略(如持久模式、并行化),帮助开发者和安全工程师高效挖掘程序漏洞。 阅读详情

相关推荐

四、SVN客户端tortoiseSVN的基本功能介绍

档案浏览器(Repo-browser) 鼠标右键–>tortoiseSVN->版本库浏览器 输入版本库URL地址,进入如菜单界面 版本库浏览器支持SVN及http两种最常用的通信协议 SVN服务器访问方式 方法 模式 访问方法 File:// 直接版本库访问(本地磁盘) http:// 通过配置subversion的WEB服务器的WEBDAV协议 http...

也许是我送你哦 1012

ListView快速下滑,出现空白

第一次listview下滑出现空白,并且是在header与listview交界的地方或者在header的上面出现空白。实在是诡异,后面经过不断的试验,发现是这个listview在滑动还没结束的时候,我将其隐藏,然后再快速滑动就会出现类似情况。我这里后面是将这个listview单独放入一个fragment,然后操作其他,再次是实验,发现已不存在此问题

liuxf1234的专栏 1077

【pprof】简要学习教程

基本介绍 pprof 是在做性能优化前的性能分析工具。 安装: go get -u github.com/google/pprof 分析工具 go tool pprof 是命令行指令,用于分析 Profiling 数据,源数据可以是 http 地址,也可以是已经 dump 下当 profile 文件;查看模式可以命令行交互模式,也可以是浏览器模式(-http 参数)。 两种应用 服务型应用 _ "net/http/pprof" 包,专用于采集 web 服务 运行数据的分析。即在运行的服务中通过 API .

码农印象 885

虚拟列表实现原理,滚动出现白屏怎么解决

举例:假设我们有一个长度为1000的数据列表,每个列表项的高度是50像素,我们的可视区域高度为500像素,这个时候进行滚动。当数据加载完成后,占位符即可被真实的数据替换,完成完整的数据渲染展示,用这种方法,我们可以更好的控制数据的展示,并提高页面的性能。在上述代码中,我们定义了每个列表项的高度以及可见区域的高度,根据这些参数计算出可见区域内的列表项数量。我们通过滚动事件监听器实时计算出当前可视区域内的列表项,并根据这些列表的下标值渲染列表,最后将占位符元素移除。虚拟列表是一种优化长列表性能的机制。

czlj1998的博客 3918

飞控算法-姿态解算之互补滤波

飞控乱入之姿态解算 姿态解算是通过读取各个传感器的数据进行融合最终得到当前飞行器的姿态,姿态通常用Euler角(Roll-Pitch-Yaw)来表示 姿态解算框架 姿态解算的数据源可来自于陀螺仪或加速度计,他们分别都可以得到当前姿态,但实际上他们都有各自的传感器性能的优缺点,需要取长补短,进行数据融合才能得到真实的姿态,这种方法简称 互补滤波 算法 传感器特性 互补滤波 姿态解...

GoolyOh的专栏 1万+

Python爬虫实战:用最新技术高效下载摄影网站图片

本文将深入探讨如何利用Python最新技术栈构建一个功能完整的摄影网站图片爬虫。我们将使用异步编程、智能反爬策略和现代化工具,实现高效、可靠的图片下载系统。高性能异步架构:使用asyncio实现高并发下载智能反爬策略:支持多种反爬措施和浏览器模拟多网站适配:可解析多种摄影网站结构数据管理:完整的下载记录和统计功能扩展性强:支持代理、分布式等高级功能用户友好:提供进度显示和详细日志。

2201_76125261的博客 1645

vant van-list无限加载了解决方法,vant的下拉加载和upload都有点坑(上传在钉钉H5多张照片会黑屏死掉)

1、:immediate-check="false" <van-list :immediate-check="immediate" v-model="loadingTask" :finished="finishedTask" :finished-text="task_list.length > 0 ? '没有更多了' : ''" @load="onLoadTask"

qq_23064501的博客 9222

【脑电信号】脑电信号EEG形态学滤波处理【含Matlab源码 4023期】

脑电信号EEG形态学滤波处理 完整的代码,包运行;运行操作视频见优快云资源!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 823

vant之van-list的使用以及一些坑的解决方式

文章目录第一步,要使用vant组件,安装好vant,npm i vant -S第二步,在你要用到的地方js中引入,或者在src/main.js里面引入第三步,在template中引用第四步,js中重要代码第五步,解决遇到的坑 第一步,要使用vant组件,安装好vant,npm i vant -S 第二步,在你要用到的地方js中引入,或者在src/main.js里面引入 import Vue from ‘vue‘; import { List } from ‘vant‘; Vue.use(List); 这

rayong的博客 2万+

嵌入式软考必备知识点:嵌入式系统开发中的重要概念和示例代码

在嵌入式软考中,有一些重要的知识点需要掌握,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口等。实时操作系统是一种专门设计用于嵌入式系统的操作系统,可以提供对任务调度、中断处理和资源管理等方面的支持。GPIO(通用输入输出):GPIO是嵌入式系统中常用的硬件接口,用于连接外部设备和嵌入式系统。以上是嵌入式软考中的一些必备知识点,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口。通过配置串口的波特率、数据位数和校验位等参数,可以实现与其他设备的可靠通信。一、嵌入式系统的基本概念。

PixeGO的博客 314

Origin教程004:Origin图形导出

需要编辑的话,双击图形,会自动用origin软件打开图形,这种方式是最开始导出图形的功能,方式一和二都是后面增加的。如果导出的图片边距较大的时候,会影响图片的美观,可以通过。也可以设置在PPT中直接编辑,找到。解决方法是,选择一条线,

WwLK123的博客 6335

js禁用快速滚动_快速提示:禁用Firefox标签滚动

js禁用快速滚动One of the features in Firefox 2.0 that drives me crazy is the tab scrolling buttons when you have a lot of tabs open. I’d prefer to just see all the tabs on the screen, even if they are small...

cum44153的博客 377

030、自动白平衡AWB实战:灰度世界、完美反射与色温估计的工程实现与局限

本文深入探讨了自动白平衡(AWB)算法在工程实践中的实现与局限性。作者结合实际项目经验,分析了灰度世界算法、完美反射算法和色温估计三种主流方法的优缺点和适用场景,并分享了调试过程中的关键技巧和常见陷阱。文章指出,纯色背景、多光源环境等特殊场景容易导致算法失效,需要通过混合策略和场景检测来优化。作者强调AWB调试需要大量实际场景测试,建议保留手动调节功能,并针对不同硬件配置进行参数标定。最后提出,AWB优化是一个持续迭代的过程,需要工程化的测试方法和数据处理能力。

zzfmlxs的博客 283

android开源控件收集(PullToRefreshListView)

一.扯淡一直以来都是在索取,而没有贡献,所以希望能够也写点东西做点总结。希望对大家有帮助,自己也是一个学习总结的过程.坚持坚持坚持。今天给加大推荐一个最基本的开源控件--下拉刷新----PullToRefreshListView二.详细  关于下拉刷新,最开始有个外国人应该是写过了。这样的东西也只有外国人能够干出来。关于他是怎么写的我就不说了。里面的代码实现过程网上万千,大家百度一下。我主要还是想...

weixin_30776863的博客 73

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

PullToRefreshListView一键置顶功能实现

项目中我们经常会用到各种列表需求,有的时候列表数据过多,用户滑动到最下面 ,返回到最上面是很不方便的,所以我们就需要一个一键置顶的功能。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 2449

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

PullToRefreshListView

3步骤第一步 布局xml&lt;com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="fill_parent" android:layout_height="fill_pare...

qq_40638618的博客 220

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PullToRefreshListView进阶(一)----->下拉刷新

效果图: (转自harvic当乌龟有了梦想……)  正在刷新                                                                                              刷新后        一、导入Library 下载源码后(https://github.com/chrisbanes/Android-Pul

全干工程师 2008

PullToRefresh下拉刷新和上拉加载

com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="match_parent" android:layout_height="match_parent" an

Ln_ZooFa的博客 664

EasyWeChat 开放平台第三方平台:代授权方(公众号/小程序)实现业务完整指南

授权方(公众号、小程序)把自己的账号授权给你的开放平台第三方平台之后,你就可以**替它实现业务**——以授权方的身份调用微信 API、接收它的消息与事件推送。本指南基于当前仓库中 EasyWeChat 4.x 文档 [authorizer-delegate.md](https://link.gitcode.com/i/674ed6eb49aca14f13524afd9e9854ba) 展开,结合

gitblog_01010的博客 451

PullToRefresh------ListView的使用

第一步 :写出布局文件的设置 <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="match_parent" android:layout_heigh...

weixin_30553065的博客 139

Il2CppDumper 新手 5 问:从 libil2cpp.so 还原出可反编译的 DummyDll

拿到一个 Unity IL2CPP 编译出的 libil2cpp.so,直接丢给反编译工具是打不开的。Il2CppDumper 专门处理这种情况:解析 global-metadata.dat 里的元数据,配合可执行文件还原出类型、方法、字段的位置,最终生成 DummyDll、逆向脚本和结构体头文件。下面按新手最常卡住的 5 个问题来讲。 ## 先分清:要交给工具的是哪两个文件? Il2CppD

gitblog_00598的博客 1022

Pixel-to-Space技术:视频数据的三维重构与应用

计算机视觉中的三维重构技术通过将二维图像映射到三维空间,解决了传统视频分析在空间感知上的局限性。其核心原理包括多视角几何重建、相机标定和深度估计等关键技术,能够实现精确的空间定位和动态场景理解。这项技术在智慧交通、智能制造和智慧城市等领域具有重要应用价值,特别是在跨摄像头追踪和行为分析等场景中表现突出。Pixel-to-Space作为前沿的空间智能计算技术,结合了深度学习和边缘计算的优势,为视频监控系统赋予了三维空间理解能力,显著提升了现有基础设施的数据价值。

chuoshao2508的博客 393

PullToRefresh实现下拉刷新和上拉加载更多的ListView

使用PullToRefresh实现下拉刷新和上拉加载更多的ListView效果如下: PullToRefresh是非常好用的第三方下拉刷新库,它支持: 1.ListView 2.ExpandableListView 3.GridView 4.WebView 等多种常用的需要刷新的View控件,基本上能够满足我们的开发需要。 下面结合一个小D

ljw的博客 1323

pulltorefresh扩展下拉上拉刷新加载及监听listview滚动方向

很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性。查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷新和上拉加载更多。这个组件有个mode的属性,可以设置为both,即上下同时都可拉动。但是只设置这个属性的话,上拉与下拉产生的效果是完全一致的。所以要使用这个开源项目做到下拉刷新并同时可上拉加载更多,

fghydx的专栏 2543

自定义PullToRefresh正在刷新的时候不能滑动listview问题解决

今天在定义PullToRefresh的时候遇到一个问题,继承了PullToRefreshBase类实现了相关方法,为recyclerView添加了上啦和下拉功能后发现正在刷新的时候recyclerView不能滑动。根据时间分发的顺序,我首先想到的就是正在刷新的时候PullToRefreshBase把事件给拦截了,所以查看PullToRefreshBase源码的onInterceptTouchEven

duolaimila的博客 2482

PullToRefreshListView滑动布局隐藏问题

问题:滑动时“推荐商品”布局会隐藏,下面还有“热门商品”“人气商品”等标题,都有这个问题。 解决方法:参考了很多网上的方法,许多都是告诉我要添加标记,给每个位置做标记,但是效果并不理想,其实对于PullToRefreshListView这个控件,现在优化的已经非常好了,这个问题是我自己的问题,写代码的时候不注意才导致的,我们都知道在PullToRefreshListView里面滑动的时候会复用g

zhangmanyuan111的博客 2150
上一篇: Android自定义控件的刷新方法选择
下一篇: Lotus Domino Java代理邮件最终
羊羊爱代码
博客等级 码龄11年 8粉丝 28原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值