Android开发 - 下拉刷新和分段头悬停列表

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库01 此方案可满足千万级并发需求,同时支持时序数据、知识图谱和文档数据库的高效处理,通过云原生架构实现极致弹性。​:每月约$15-20万(100节点K8s集群+数据库集群+CDN流量)1. 宠物上架/下架流程。 阅读详情

项目源码

本文所述项目已开源,源码地址

为什么做PullToRefresh-PinnedSection-ListView

前段时间因为项目需求,需要在Android中对ListView同时增加下拉刷新和分段头悬停的效果,受到dkmeteor的启发,Merge了两个Github上的开源项目:

  • Android-PullToRefresh(handmark版,目前已不再更新)

  • StickyListHeaders(目前版本为2.x)

    由于既有项目里的StickyListHeaders代码为1.x版本,StickyListHeadersListView继承自ListView,故与handmark版的PullToRefreshListView做merge时很顺畅;

    但2.x版的StickyListHeadersListView继承自FrameLayout,与PullToRefresh的融合并不顺利,若要整理拆分出一个独立的lib时遇到很多的问题,故在分断头悬停需求上采用了另一个类似的开源项目:

  • pinned-section-listview

我是如何做的

前面已经介绍过这个过程是“很顺畅”的:

1.Library方面,基于PullToRefresh的Library修改,首先使其依赖StickyListHeaders的Library,通过拷贝src/com/handmark/pulltorefresh/library/PullToRefreshListView.java类,新建PullToRefreshPinnedSectionListView.java类;

2.修改PullToRefreshPinnedSectionListView类中createListView()方法,注释以下代码

 
//        if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {
//            lv = new InternalListViewSDK9(context, attrs);
//        } else {
//            lv = new InternalListView(context, attrs);
//        }

添加

 
lv = new PinnedSectionListView(context, attrs);

3.Example方面,基于pinned-section-listview的example修改,令其依赖PullToRefresh的Library;

4.修改主类资源文件activity_main.xml,设置List组件为新类:

 
<com.handmark.pulltorefresh.library.PullToRefreshPinnedSectionListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:headerDividersEnabled="false"
android:footerDividersEnabled="false"
android:divider="@null"
/>

5.改写SampleActivity.java类中getListView()方法:

 
mpPullToRefreshPinnedSectionListView = (PullToRefreshPinnedSectionListView) findViewById(R.id.list);
return mpPullToRefreshPinnedSectionListView.getRefreshableView();

即可通过

 
ListView list = getListView();

继续进行原example其他操作,详情可阅读项目代码

另一种实现方式

本例的实现方式依赖于handmark版下拉刷新组件的灵活性,更重要的一点,要求分段头悬停组件是继承自ListView实现;故同理也可用handmark版下拉刷新组件和1.x版的StickyListHeaders组件实现;

另一种实现方式为pull-to-refresh-sticky-list,其采取合并的是2.x版的StickyListHeaders和johannilsson的android-pulltorefresh,实现形式不同,但效果类似,看过代码后实现起来也“相当顺畅”,有兴趣的同学可以参照此项目;

建议

建议在熟悉或使用过原有组件类库的前提下使用本类库。

Android实现滚动头部悬停效果 (附完整源码) 阅读详情

相关推荐

Android仿联系人、城市列表 头部悬停效果

Android仿联系人、城市列表 头部悬停效果 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]

Android Studio 第七十八期 - Android下拉悬停collapsinglayout

    代码已经整理好,效果如下图:        地址:https://github.com/geeklx/myapplication2018/tree/master/p048_collapsingtoolbarlayout

weixin_34223655的博客 481

Android头部停留及分页加载功能整合列表

仿支付宝账单列表,实现头部停留及分页数据加载功能

Android视图的顶部悬停的实现

项目中经常会用到,一个View悬停到顶部的情况。 这里借鉴网上的方式给出来2中实现方式。 1,利用ScrollView+ListView实现 2,利用ListView增加头部实现。 然后简单的分析了一下它们的优缺。

十一月Siy 4302

MuMu模拟器过检测实战:从硬件伪装到API欺骗的完整避坑指南

本文详细介绍了MuMu模拟器过检测的实战技术,从硬件伪装到API欺骗的全方位解决方案。通过修改CPU/GPU信息、内存分布、系统属性和行为模拟等关键技术,帮助用户有效绕过现代应用的模拟器检测机制,提升模拟器的隐蔽性和稳定性。

xxx12的博客 1410

【2021最新版】Dubbo面试题总结(40道题含答案解析)

文章目录1、为什么要用Dubbo?2、Dubbo的整体架构设计有哪些分层?3、默认使用的是什么通信框架,还有别的选择吗?4、服务调用是阻塞的吗?5、一般使用什么注册中心?还有别的选择吗?6、默认使用什么序列化框架,你知道的还有哪些?7、服务提供者能实现失效踢出是什么原理?8、服务上线怎么不影响旧版本?9、如何解决服务调用链过长的问题?10、说说核心的配置有哪些?11、Dubbo推荐用什么协议?12、同一个服务多个注册的情况下可以直连某一个服务吗?13、画一画服务注册与发现的流程图?14、Dubbo集群容错有

程序媛小琬的博客 1万+

Android头部悬停

列表页面:当页面包含大量数据列表(如商品列表、联系人列表、论坛帖子列表)时,将列表的标题栏或筛选栏设置为悬停,可以让用户在浏览列表时保持筛选或排序功能的可见性。长页面:当页面内容很长(如新闻文章、博客文章、产品列表)时,将顶部的导航栏或标题栏设置为悬停,可以使用户在滚动浏览页面时始终能够方便地回到页面的其他部分。今天搞个头部悬停玩一下,说到头部悬停,咱们要知道一般需要再什么样的页面去进行一个展示,才能够更好的利用头部悬停达到咱们想要的形式。首先咱们看一下这三个控件的位置。这样拆解开看是不是更好理解呢。

CPK119的博客 346

请举手回答,LDO和DC-DC有什么不同?

文章目录1 LDO是什么2 LDO典型电路3 DC-DC是什么4 DC-DC典型电路5 LDO和DC-DC区别10.2.6 小结一下 大家好,我是记得诚。 DC-DC和LDO都是电源芯片,两者差异很大,用法也不同,这篇博客讲述LDO和DC-DC的一些差异,帮助更好的认识LDO和DC-DC并进行选型。 1 LDO是什么 LDO是low dropout regulator的简称,即低压差线性稳压器,这是相对于传统的线性稳压器来说的,传统的稳压器,输入比输出要高出很多,否则无法工作,LDO可能输入比输出高1~2V

记得诚 1万+

android顶部悬停效果(仅用ListView实现)

先看一下效果图。。。主要说的是原理。所以界面丑就丑点,大家凑合着看吧。1.布局文件 activity_main.xml<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="m

zyh2525246的博客 2155

【LAMMPS学习】五、LAMMPS命令(1) LAMMPS 输入脚本

本部分描述了 LAMMPS 输入脚本的格式以及其中的命令如何用于定义 LAMMPS 模拟。主要包括以下内容。

荷塘阅色 2645

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

Robot_PLC_HMI_Automation 4241

android studio导入PullToRefresh教程

1.新建一个Android项目,下载好Android-PullToRefresh-master,并解压,找到library文件夹,我把他放在C:\import目录下,下面的都是根据箭头一步一步的点击即可 找到library文件夹并选中它在点击OK

ljp的博客 6579

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 390

安卓开发中上滑触顶悬停

CoordinatorLayout、AppBarLayout 、CollapsingToolbarLayout、NestedScrollView

m0_66843126的博客 1067

【新版系统架构】系统架构设计师教程全篇知识点提炼

信息系统的5个基本功能:输入、存储、处理、输出和控制信息系统的发展:诺兰模型:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段、成熟阶段信息系统的分类:传统的信息系统分为:业务(数据)处理系统、管理信息系统(MIS)、决策支持系统(DSS)、专家系统(ES)、办公自动化系统(OAS)等5类信息系统的生命周期:1、产生阶段2、开发阶段(总体规划、系统分析、系统设计、系统实施、系统验收阶段)3、运行阶段4、消亡阶段信息系统建设原则:1、高层管理人员介入原则。

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 1万+

188、AI 虚化渲染:从深度图到光学虚化的模拟,光斑与渐进虚化的算法实现

AI虚化渲染技术解析:从深度图到光学级虚化效果 本文深入探讨了手机AI虚化渲染的关键技术,包括深度图处理、光学虚化模拟和渐进虚化算法。文章指出手机深度图存在边缘精度不足的问题,提出通过引导滤波进行边缘锐化预处理。针对传统高斯模糊的"塑料感",介绍了基于物理光学模型的弥散圆卷积核实现方法,包括光圈形状模拟和光斑模板生成。重点分析了渐进虚化技术,通过分层渲染和混合解决深度断层问题,并给出性能优化方案。最后详细解析了真实感光斑渲染的三个特征:边缘增强、洋葱圈纹理和非相干叠加,提供了完整的实现思路和关键代码片段。文

sundong_81的博客 138

Android 顶部悬停

效果主要靠布局来实现的,主要使用了CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/

danfengw的博客 3296

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 页面上滑置顶悬停实现 (CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+NestedScrollView)

我开始炒冷饭了啊,有人说这套组合已经被用烂了,有人说这玩意谁都会,其实没有人说哈,我就是怕被人说,提前预警哈. 最近,工作比较忙,好久都没有写一下博客来说点什么. 刚刚我去翻了一下项目,发现去年的上滑置顶页面可以给大家拿出来讲一下: 上滑触发置顶后的样子: 好,如果你也想要实现类似的效果,那么请你调整一下坐姿,开始进入正题. 内个谁! 后排的童鞋帮忙把同桌喊一下,别睡了...(...

赵星海 5003

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

在使用Android-PullToRefresh前遇到的问题

今天在学习使用ListView下拉刷新时,遇到了一些问题,也是花了三个小时才搞定。把我遇到的问题分享出来,让后来者少走弯路。 1.如何使用Android-PullToRefresh 首相我们要去https://github.com/chrisbanes/Android-PullToRefresh下载 解压后将library文件夹导入到eclipse中。 这里要特别注意一定要勾选红色

u010585448的专栏 570

android studio上拉加载,AndroidStudio的PullToRefreshListView简单使用

PullToRefreshListView的下载:https://github.com/chrisbanes/Android-PullToRefresh1.先将其中的library倒入到Module,然后与App进行关联2.代码,我并不是将PullToRefreshListView直接写到xml中,而是创建成对象。PullToRefreshListViewpullToRefreshListVie...

weixin_39856589的博客 377

Android开发 - ActivityLifecycleCallbacks使用方法初探

Android开发 - ActivityLifecycleCallbacks使用方法初探 ActivityLifecycleCallbacks是什么? Application通过此接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理。 为什么用ActivityLifecycleCallbacks? 以往若需监测Activity的生命周期事件代码,你可

plus plus Tong 4万+
上一篇: Android开发 - ActivityLifecycleCallbacks使用方法初探
下一篇: 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
tongcpp
博客等级 码龄15年 32粉丝 23原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值