首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发笔记(一百二十三)下拉刷新布局SwipeRefreshLayout

+RecyclerView下拉刷新 看过了搭配ListView下拉刷新,再来看看搭配RecyclerView会是什么效果。...上面我们看到搭配ListView情况下,在刷新开始与刷新结束时,提示文字展示与隐藏过程有点突兀,都是一下子展示和一下子隐藏,缺乏动画效果,使人觉得生硬呆板。...那么搭配RecyclerView进行下拉刷新有没有办法改善这种情况呢? 下面是SwipeRefreshLayout+RecyclerView下拉刷新效果截图: ?...复习一下前篇博文《Android开发笔记(一百二十二)循环器视图RecyclerView》,当时我们提到RecyclerView几个方法,却没有实际运用例子,现在正好派上用场了。...它们是: 1、RecyclerView.Adapternotify相关方法,notifyItemInserted、notifyItemRemoved、notifyItemChanged,用于在个别项目发生变化时单独通知适配器调整

1.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

SwipeRefreshLayout实现上滑加载更多

大家好,又见面了,我是你们朋友全栈君。 在我们项目中,需要用到许多下拉刷新和上滑加载操作,不说什么没用,直接来介绍SwipeRefreshLayout扩展用法。...后面会简单介绍SwipeRefreshLayout用法。 在这里我们对谷歌官方控件进行拓展,使得SwipeRefreshLayout具有上滑加载更多功能。...// 设置滚动监听器给RecyclerView, 使得滚动情况下也可以自动加载 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener...设置Adapter这里就不赘述了 MySwipeRefreshLayout用法 //SwipeRefreshLayout设置监听事件 mSwipeRefreshLayout.setOnRefreshListener...mSwipeRefreshLayout.setItemCount(10); //SwipeRefreshLayout设置刷新时颜色变化,最多可以设置4种,每转一圈换一种颜色

3.1K10

SwipeRefreshLayout下拉刷新组件

setColorSchemeResources(int... colorResIds):设置下拉进度条颜色主题,参数可变参数,并且是资源id,可以设置多种不同颜色,每转一圈就显示一种颜色。...使用SwipeRefrshLayout要想达到刷新目的,首先需要在这个布局里包裹可以滑动子控件,ScrollView、ListView、RecyclerView等,并且只能有一个子控件。...> 上面的代码中SwipeRefreshLayout只有一个ScrollView子元素,其中是一个文本框,通过下拉刷新来更新文本框里面的内容。...在RecyclerView数据动态更新案例基础上来修改,首先修改布局文件,在RecyclerView外层LinearLayout替换为SwipeRefreshLayout,修改后recyclerview_layout.xml...这里只是简单示范了一下SwipeRefreshLayoutRecyclerView结合使用案例,还可以在这基础上增加下拉刷新列表头提示灯操作。

3.3K70

JetPack--Paging2

RecyclerViewadapter需要继承它,内部做了一系列处理 一、Paging上手 1.PositionalDataSource PositionalDataSource适合于从任意位置获取数据情况...,效果和上面是一样 3.ItemKeyedDataSource ItemKeyedDataSource使用于不固定数据列表,帖子,因为新增帖子比较频繁,使用上面两种可能会出现重复数据,需要参数实体类唯一值和数据量大小...:swiperefreshlayout:1.1.0-rc01' 把Movie类改造成Entity,由于服务器id随机,我们内置一个自增长主键 package com.aruba.paging4.entity...; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout...= findViewById(R.id.swipeRefreshLayout); recyclerView = findViewById(R.id.recyclerView);

1.4K30

手把手教你搭建android模块化项目框架(八)小试牛刀——带搜索列表页面 paging,mvvm及flow运用

由于没有后台支持,搜索结果都是静态页,搜索栏中添加是页码数,理解实际搜索条件即可~图片基于我们模块化设计,我们所有的数据交互将封装在data_xxx模块中,这里由于没有后台支持,我随便抓取了一些双色球开奖数据作为基础...return result.next.isBlank() } override suspend fun clearLocalData() { //LotteryDB数据库查询类...LotteryDB.clearLocalDataByRemoteNameAsync(remoteName) }}将Mediator写完后,我们工作已经完成了一半~没错,paging就是这么简单易用...layout_constraintBottom_toBottomOf="parent" bind:layout_constraintTop_toBottomOf="@id/search"> </androidx.constraintlayout.widget.ConstraintLayout

20520

基于SwipeRefreshLayout上拉加载控件

现在项目中用列表来展示数据比比皆是,ListView和RecyclerView大家也是耳熟能详。...实际项目中,后台肯定接口肯定都是分页,那么,分页加载也是自然而然事,下面基于Google原生下拉刷新控件SwipeRefreshLayout,实现上拉加载更多功能。...mListView = (ListView) childView; // 设置滚动监听器给ListView, 使得滚动情况下也可以自动加载...由于SwipeRefreshLayout本身就是下拉加载控件,这样封装后,该控件就具备了下拉刷新上拉加载更多功能,用法没有任务变化: <com.jackie.sample.custom_view.CustomSwipeRefreshLayout...,该控件只支持ListView,不支持RecyclerView,有兴趣同学可以自行优化。

86410

通用RecylerAdapter,内置XRecyclerView,兼容上下拉与动画,高复用,一个Adapter通用所有页面,支持空页面,懒人专属

一个列表多种类型item 正常情况下,对于每一个不同列表,我们经常需要实现不同Adapter ,来处理对应逻辑,这样导致了我们有着许多重复代码,在优化代码(懒)这种动力驱动下,个人实现了一个通用...后面所说Holder,可以理解列表中一个Item,属于它逻辑处理类,每一种类型Item有一种Holder。...Model顺序,通过数据layoutId,在RecyclerView中自动生成对应Holder,其他功能只需要简单配置即可。...下拉刷新与上拉加载更多 普通列表,直接使用系统SwipeRefreshLayout就可以啦,简单有好用。...不需要监听滑动,不需要SwipeRefreshLayout,轻松添加刷新与加载更多。

37350

Android Paging库使用详解(小结)

在加载数据时候, 这些类协同工作, 拉取数据并展示内容, 包括预取看不见内容并在内容改变时加载动画....在这种情况下, 通常需要从ListView迁移到RecyclerView, 然后使用Room或者PositionalDataSource构件代替Cursor, 当然, 这主要依据于Cursor实例能否访问...数据库例子 使用LiveData观测分页数据 下面的示例代码展示了所有一起工作碎片....RecyclerView通过将列表项临时地设置null来处理这个情况. 备注: 默认情况下, 分页包开启了占位符行为. 占位符有如下好处: 支持scrollbar....因为这个工作是在获取执行器中完成, 你可以在其中执行花销巨大工作, 比如, 从硬盘中读取, 查询数据库等. 备注: JOIN查询总是比作为map()一部分查询要高效.

2K30

Android RecyclerView实现多种item布局方法

super.getItemViewType(position); } } 首先我们重写了getItemViewType这个方法,在这个方法中根据position对item对象做了一些判断,如果存储item对象集合大小...,返回空view标识(这里1),如果item对象null,返回进度条标识,这个主要是用于实现下拉加载更多,如果item对象类型属于图片类型,就返回图片类型对应Item,这个就是效果图中第一个Item...类型,否则就是其它类型,也就是效果图中另一种item布局,然后我们在onCreatViewHolder中具体每一种类型引入其布局 @Override public RecyclerView.ViewHolder...用过ListView都知道,在ListView中若要复用视图缓存,就要在getView()方法中手动判断convertView是否,若不为则复用视图缓存,若为则重新加载视图,而RecyclerView...相当于对ListViewAdapter进行了再次封装,把ListView手动判断是否有缓存代码封装到RecyclerView内部,使这部分逻辑不可见,我们只需要通过getItemCount()方法告诉

4.1K21

kotlin--综合运用Hilt、Paging3、Flow、Room、Retrofit、Coil等实现MVVM架构

对象Paging类型,因为我们MovieDao返回是一个PagingSource对象,所以需要把MovieEntity转换为MovieItemModel...= null) (holder.binding as ItemBinding).movie = getItem(position) } } 4.RecyclerView...添加扩展函数 为了后续Paging使用,RecyclerView添加设置Adapter和liveData扩展函数: fun <VH : RecyclerView.ViewHolder, T : Any...,可以获取到pageSize等一系列初始化配置值 如果上一页最后一个item,那么表示列表加载到底了,否则获取到需要加载的当前page { //加载更多...withLoadStateFooter(FooterAdapter(this)) } 2.下拉刷新 下拉刷新和之前也是相同,布局中嵌套一个SwipeRefreshLayout: <?

3.3K30

paging组件用法和意义

下面会以PositionalDataSource例进行讲解,其他方式极其相似。...四.分页机制实现   我们以从豆瓣网上获取热度最高250部电影例进行讲解,这里我们使用Retrofit+OkHttp进行网络数据获取,如果对这两个网络请求工具不熟悉的话,可以看这篇博客:https...方法会把服务器返回数据传递到PagedList当中 } }   h.编写RecyclerView适配器类,此类需要继承自PagedListAdapter。...2.当数据库中没有数据时候,会通知BoundaryCallback中onZeroItemsLoaded()方法;若数据库中有数据,则当用户滑到RecyclerView底部时,且数据库中数据已经加载完毕了...() {//数据库时调用该方法,在该方法中请求第一页数据 super.onZeroItemsLoaded(); getTopData(); } @

25360
领券