iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android程序开发之使用PullToRefresh实现下拉刷新和上拉加载
  • 601
分享到

Android程序开发之使用PullToRefresh实现下拉刷新和上拉加载

pulltorefreshAndroid 2022-06-06 08:06:31 601人浏览 八月长安
摘要

PullToRefresh是一套实现非常好的下拉刷新库,它支持: 1.ListView 2.ExpandableListView 3.GridView 4.WEBView 等多

PullToRefresh是一套实现非常好的下拉刷新库,它支持:

1.ListView

2.ExpandableListView

3.GridView

4.WEBView

等多种常用的需要刷新的View类型,而且使用起来也十分方便。
(下载地址:https://GitHub.com/chrisbanes/Android-PullToRefresh)

下载完成,将它导入到eclipse中,作为一个library导入到你的工程中就好了。

一、废话少说,下拉刷新go。

1.在你的布局文件中加上你想用的View就好了,比如这儿我想用一个支持下拉 刷新的ExpandableListView


<com.handmark.pulltorefresh.library.PullToRefreshExpandableListView 
android:id="@+id/expand_list" 
android:layout_width="match_parent" 
android:layout_height="match_parent" /> 

2. 在你的Activity代码中进行简单的设置:


mExpandList = (PullToRefreshExpandableListView) rootView.findViewById(R.id.expand_list); 
mExpandList.getRefreshableView().setGroupIndicator(null); 
mExpandList.getRefreshableView().setDivider(null); 
mExpandList.getRefreshableView().setSelector(android.R.color.transparent); 
mExpandList.getRefreshableView().setOnGroupClickListener(this); 
mExpandList.setOnRefreshListener(this); 

第一行是找到这个View,最后一行是为它加上刷新的监听器,中间的几行是我对ExpandableListView进行一些设置。

这样其实就已经可以下拉刷新了,但刷新时需要运行的代码写在哪呢,还有为什么下拉不会收起来呢,且往下看。

3.下拉刷新时执行的方法onRefresh()


@Override 
public void onRefresh(PullToRefresHBase<ExpandableListView> refreshView) { 
if (!isRefreshing) { 
isRefreshing = true; 
updateList(true); 
} else { 
mExpandList.onRefreshComplete(); 
} 
}

一般来说我们会开另一个线程去获取数据,所以这儿会加上一个判断,如果已经在获取数据了,就onRefreshComplete(),就是将下拉收起;否则就去开新线程取数据,取完记得也要onRefreshComplete()哦!

二、上拉加载

如果你不想再费时间去自己写一个上拉加载,不妨试一下PullToRefresh自带的上拉效果哦!

PullToRefresh本身支持下拉刷新和上拉刷新,所以我们只需要将上拉刷新改成上拉加载就行了。

1.设置Mode


// set mode to BOTH 
mExpandList.setMode(Mode.BOTH); 
mExpandList.getLoadingLayoutProxy(false, true).setPullLabel(getString(R.string.pull_to_load)); 
mExpandList.getLoadingLayoutProxy(false, true).setRefreshingLabel(getString(R.string.loading)); 
mExpandList.getLoadingLayoutProxy(false, true).setReleaseLabel(getString(R.string.release_to_load)); 

Mode设置为Mode.BOTH后,下拉和上拉都会执行onRefresh()中的方法了。

因为界面上边,我们要显示“下拉刷新”,下边我们要显示“上拉加载”,所以后三行就是改变下边部分的文字,getLoadingLayoutProxy(false, true)方法大家可以自己感受一下。

2.怎么区分下拉/上拉

网上有的同学是用onScrollListener来判断,这样并不严谨,我依靠是header还是footer处于可见状态来区分下拉和上拉,如果是下拉,那header一定是可见的;反之,footer一定是可见的。

但是PullToRefreshExpandableListView并没有提供这样的接口,那我们就来小改一下我们引入的工程吧,很简单:

找到包“com.handmark.pulltorefresh.library”下的PullToRefreshAdapterViewBase.java这个类,加入两个新接口:


public boolean isHeaderShown() { 
return getHeaderLayout().isshown(); 
} 
public boolean isFooterShown() { 
return getFooterLayout().isShown(); 
} 

这样就行了哦,重新编译一下这个工程,和你自己的工程。

在onRefresh()中这样来用:


@Override 
public void onRefresh(PullToRefreshBase<ExpandableListView> refreshView) { 
if (!isRefreshing) { 
isRefreshing = true; 
if (mExpandList.isHeaderShown()) { 
Utils.LOGD("pull-to-refresh"); 
refreshOnlineStatus(true); 
} else if (mExpandList.isFooterShown()) { 
Utils.LOGD("pull-to-load-more"); 
loadNextPage(); 
} 
} else { 
mExpandList.onRefreshComplete(); 
} 
} 

很简单吧,这样我们就YD地使用PullToRefresh实现了下拉刷新和上拉加载,LOL,希望多多少少能帮到大家。

近来发现:

1.实现上拉监听,只需要实现OnRefreshListener2就可以了,同时别忘记setMode(Mode.BOTH) 哦!

2.PullToRefreshListView在使用上有一个BUG,在你的xml layout中,不能一开始将它的visiablity设置为GoNE,否则,在代码中设置visiablity为VISIABLE也没有作用。

最后放上一张效果图

以上所述是小编给大家介绍的使用PullToRefresh实现下拉刷新和上拉加载,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程网网站的支持!

您可能感兴趣的文章:android使用PullToRefresh框架实现ListView下拉刷新上拉加载更多android使用Ultra-PullToRefresh实现下拉刷新自定义代码android使用PullToRefresh实现下拉刷新和上拉加载Android使用PullToRefresh完成ListView下拉刷新和左滑删除功能Android开源项目PullToRefresh下拉刷新功能详解2Android开源项目PullToRefresh下拉刷新功能详解Android下拉刷新控件PullToRefresh实例解析Android使用PullToRefresh实现上拉加载和下拉刷新效果的代码Android实现简单的下拉刷新pulltorefreshAndroid PullToRefreshLayout下拉刷新控件的终结者Android带刷新时间显示的PullToRefresh上下拉刷新


--结束END--

本文标题: Android程序开发之使用PullToRefresh实现下拉刷新和上拉加载

本文链接: https://www.lsjlt.com/news/24716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 小程序怎么实现上拉刷新下拉加载
    这篇文章主要介绍“小程序怎么实现上拉刷新下拉加载”,在日常操作中,相信很多人在小程序怎么实现上拉刷新下拉加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”小程序怎么实现上拉刷新下拉加载”的疑惑有所帮助!接下来...
    99+
    2023-06-26
  • Flutter实现下拉刷新和上拉加载更多
    本文实例为大家分享了Flutter实现下拉刷新和上拉加载更多的具体代码,供大家参考,具体内容如下 效果 下拉刷新 如果实现下拉刷新,必须借助RefreshIndicator,在li...
    99+
    2024-04-02
  • 微信小程序怎么实现下拉刷新和上拉加载更多
    微信小程序可以通过使用onPullDownRefresh和onReachBottom两个方法来实现下拉刷新和上拉加载更多的功能。 ...
    99+
    2024-04-03
    微信小程序
  • 原生js实现下拉刷新和上拉加载更多
    本文实例为大家分享了js实现下拉刷新和上拉加载更多的具体代码,供大家参考,具体内容如下 1.下拉刷新 由于原生js太久不用了,这里列一下此处涉及到的前置知识点: 移动端触屏事件: t...
    99+
    2024-04-02
  • Android自定义ListView实现下拉刷新上拉加载更多
    目录1、创建刷新控件1.1、创建头部View1.2、下拉事件1.3、接口回调2、上拉加载更多2.1、底部样式2.2、布局添加Listview现在用的很少了,基本都是使用Recycle...
    99+
    2024-04-02
  • uniapp怎么实现下拉刷新和上拉加载功能
    随着移动端开发的不断升级,开发者们对于移动应用的需求也越来越高。而在很多移动应用中,下拉刷新和上拉加载更多是必不可少的功能之一,为了提高用户体验,许多移动应用都会加入这两个功能。在这里,我们将介绍如何在uniapp中实现下拉刷新和上拉加载更...
    99+
    2023-05-14
  • vue 使用mescroll.js框架实现下拉加载和上拉刷新功能
    以下是代码是在项目中抽取出来的,都是实现下拉刷新上拉加载的要点。 注:以下不是用vue-cli写的,用vue-cli的请绕过,抱歉~ 1、mescroll 的页面的初始化 initM...
    99+
    2024-04-02
  • Spring怎么实现上拉刷新和下拉加载效果
    这篇文章主要介绍Spring怎么实现上拉刷新和下拉加载效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!导依赖:compile 'com.android.support:recyclerview-v...
    99+
    2023-05-30
    spring
  • MUI如何实现上拉加载和下拉刷新效果
    这篇文章主要介绍了MUI如何实现上拉加载和下拉刷新效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。编写存储过程分页(此处使用T-SQL)C...
    99+
    2024-04-02
  • MUI进行APP混合开发如何实现下拉刷新和上拉加载
    小编给大家分享一下MUI进行APP混合开发如何实现下拉刷新和上拉加载,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,我们的环境是使用HBuilder通过MUI开发APP,这种混合开发适合安卓和苹果两个平台为实现下拉刷新...
    99+
    2023-05-30
    mui app
  • Android如何通过XListView实现上拉加载下拉刷新功能
    小编给大家分享一下Android如何通过XListView实现上拉加载下拉刷新功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下## 导入XListVIew第三方库文件。通过LinkedList将刷新...
    99+
    2023-05-30
  • MUI如何实现上拉刷新/下拉加载功能
    小编给大家分享一下MUI如何实现上拉刷新/下拉加载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!新闻信息列表必备的功能,支持...
    99+
    2024-04-02
  • 微信小程序如何实现下拉加载与上拉刷新功能
    这篇文章主要介绍微信小程序如何实现下拉加载与上拉刷新功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信小程序下拉刷新上拉加载的两种实现方法实现效果图:方法一:onPullDown...
    99+
    2024-04-02
  • dropload.js插件下拉刷新和上拉加载怎么用
    小编给大家分享一下dropload.js插件下拉刷新和上拉加载怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下第...
    99+
    2024-04-02
  • 在Android项目中使用RecyclerView实现一个上拉加载下拉刷新功能
    这篇文章给大家介绍在Android项目中使用RecyclerView实现一个上拉加载下拉刷新功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。核心实现package com.example.fly.recyclervi...
    99+
    2023-05-31
    recyclerview android recycle
  • 原生js怎么实现下拉刷新和上拉加载更多
    本篇文章为大家展示了原生js怎么实现下拉刷新和上拉加载更多,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器...
    99+
    2023-06-26
  • 微信小程序如何实现列表上拉加载下拉刷新功能
    这篇文章给大家分享的是有关微信小程序如何实现列表上拉加载下拉刷新功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.列表(本部分内容出入官方文档)对于这个功能,微信小程序中并没...
    99+
    2024-04-02
  • 微信小程序如何实现上滑加载下拉刷新
    这篇文章给大家分享的是有关微信小程序如何实现上滑加载下拉刷新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。页面缓存的设置优化了页面加载,减少了频繁的调取接口,使用户在断网的情况下...
    99+
    2024-04-02
  • H5基于iScroll如何实现下拉刷新和上拉加载更多
    这篇文章将为大家详细讲解有关H5基于iScroll如何实现下拉刷新和上拉加载更多,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言   &n...
    99+
    2024-04-02
  • Vue uni-app框架实现上拉加载下拉刷新功能
    目录实现上拉加载更多优化实现下拉刷新实现上拉加载更多 打开项目根目录中的pages.json配置文件,为subPackages分包中的商品goods_list页面配置上拉触底的距离:...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作