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

Recyclerview 刷新「建议收藏」

前言:recyclerview比起listview功能上更加丰富外(如横向列表),在Item复用上也更加灵活,比如listview的某个Item数据需要更新,要通过notifyDataSetChanged...position)值只对需要刷新的控件进行操作 (3)notifyDataSetChanged() 全部Item进行刷新 (4)notifyItemRangeChanged(position, itemCount...position, int itemCount) position开始插入itemCount个Item并进行刷新 (7)notifyItemRemoved(int position) 移除并进行刷新...(8)notifyItemRangeRemoved(int position, int itemCount) position开始移除itemCount个Item并进行刷新 (9)notifyItemMoved...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除

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

最熟悉的陌生人:ListView 的观察者模式

RecyclerView 得宠之前,ListView 可以说是我们用的最多的组件。之前一直没有好好看看它的源码,知其然不知其所以然。 今天我们来窥一窥 ListView 的观察者模式。...在我们使用 ListView 的过程,经常需要修改 Item 的状态,比如添加、删除、选中等等,通常的操作是在对数据源进行操作后,调用 notifyDataSetChanged() ,比如:...= null) { mData.add(data); notifyDataSetChanged(); } } 随后 ListView...当我们滑动 ListView 后进行刷新数据操作,ListView 并没有滚动到顶部,就是因为这个方法的缘故。...的观察者模式的大概流程,看得人快吐血了,一层调一层啊,还是画个 UML 图和流程图来回顾一下: ListView 的观察者模式 ?

827100

ListView数据动态更新

经过前面几期的学习,关于ListView的一些基本用法大概学的差不多了,但是你可能发现了,所有ListView里面要填充的数据都是静态的,但在实际开发,这些数据往往都是动态变化的,比如数据内容发生改变...、增加几行、或者删除几行,这就涉及到ListView数据的更新问题。...然后点击添加按钮,在列表随机添加一些列表项,可以看到列表数据动态更新,如上图右侧所示。 然后再点击更新按钮,可以随机更新列表数据,如下图左侧所示。 ?...再点击删除按钮,可以看到将会列表删除随机列表项,如上图右侧所示。 点击清空按钮,可以将列表所有数据全部清空,显示启动时的页面。...以上几个操作,可以看到动态更新时离不开每次调用notifyDataSetChanged()方法,这个方法的主要作用就是当适配器里面的内容发生改变时需要强制调用getView()方法来刷新每个Item的内容

2.1K60

android使用SwipeRefreshLayout实现ListView下拉刷新上拉加载

本文实例为大家分享了android实现ListView下拉刷新上拉加载的具体代码,供大家参考,具体内容如下 image.png 这次使用的是系统的SwipeRefreshLayout实现下拉刷新,和设置...ListView的滑动监听判断是否滑动到最底部然后加载更多; 这个要比PullToRefreshListView简单很多,想PullToRefreshListView实现下拉刷新上拉加载的可以看这篇博客...: android使用PullToRefresh框架实现ListView下拉刷新上拉加载更多 至于使用哪一种大家可以根据产品的需求选择,这两种刷新目前为止世面上还是使用PullToRefreshListView...5、setSize():设置进度圈的大小 这个大家简单了解一下,下面代码中都一一用到; 首先说下布局文件,如果想用SwipeRefreshLayout实现下拉刷新必须把ListView写到SwipeRefreshLayout...adapter; 上拉加载更多的时候直接给ListVIew设置了一个滑动监听,判断是否滑动到adapter的最下面,然后加载数据,刷新adapter; public class MainActivity

2K20

Android ListView优化之局部刷新(更新)(非notifyDataSetChanged

在Android开发我们经常会用到listview的数据和界面刷新动作,我们每次可能会用到的都是Adapter.notifyDataSetChanged()方法。...这样的话我们发现,getview()会调用多次,刷新了好多个不需要刷新的item,这样的话相对而言,降低了效率。但是,我们有的情况下是只需要对某个item的数据进行刷新就可以了。...1.先看效果图 2.先看一般的Adapter.notifyDataSetChanged()方法刷新界面 3.activity的代码 这里面用到了万能ViewHolder,不了解可以去这里 了解详情...要更新的listview * @param position 要更新的位置 */ public void notifyDataSetChanged(ListView listView...void convertView(View item, T t); } 这样的话,我们每次更新的时候只需要调用notifyDataSetChanged(ListView listView, int

2K20

android使用PullToRefresh框架实现ListView下拉刷新上拉加载更多

本文实例为大家分享了Android实现ListView下拉刷新上拉加载更多的具体代码,供大家参考,具体内容如下 ?...其实谷歌官方目前已经推出ListView下拉刷新框架SwipeRefreshLayout,想了解的朋友可以点击 android使用SwipeRefreshLayout实现ListView下拉刷新上拉加载...jar包,而是把下拉刷新功能直接抽取出来使用; 当下拉的时候回调监听,在抽取完下拉刷新功能的基础上实现上拉加载更多功能实现也非常简单,所以顺手写上了; 我是github上下载的Android-PullToRefresh-master...框架,在library抽取的; 首先需要复制的类大概有十个左右: ?...numList.add(numList.size(), "魔兽世界"); arrayAdapter.notifyDataSetChanged(); //关闭刷新的动画

1.8K10

Android ListView下拉上拉刷新:设计原理与实现「建议收藏」

但是,常见的一些下拉刷新开源框架,有些缺乏上拉刷新的功能。...上拉刷新的功能在一些应用场景也是需要的,比如,当用户的设备屏幕由于数据需要从网络中加载,但一次网络请求根本不可能把全部数据都加载完,因此在初始化阶段只喂全部数据的一部分数据。...adapter.notifyDataSetChanged(); listView.onRefresh(false); } @Override public void...onTop() { listView.onRefresh(true); items.add(0, "下拉到顶部添加:" + DATA++); adapter.notifyDataSetChanged...正常情况假设一屏可以显示15个,但ListView只有3个元素,那么ListView下方就会剩余空出很多空白空间,在此空间上的事件触发ListView.OnScrollListener)。

73120

浅谈Adapter中观察者模式

有这么一种功能,当我们在商品列表调整商品数量等信息的时候,下方的金额总数也随之变化。 可以看出,这个界面有一个数据源,一个适配器,一个ListView。...有两个思路: 1、我们点击某一个列表项的某一个按钮时(可能是删除此商品按钮,可能是调整此商品数量按钮)的时候,对应执行监听事件接口回调的时候计算一下列表数据源数据得到的总金额。显示在UI。...观察者设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。...= new DataSetObserver() { 25 /** 26 * 当Adapter的notifyDataSetChanged方法执行时被调用 27...= (ListView) findViewById(R.id.listView); 62 listView.setAdapter(adapter); 63 64 listView.setOnItemClickListener

1.2K120

Android开发ListView使用OnScrollListener实现分页加载数据

上篇博文和大家分享了下拉刷新,这是一个用户体验很好的操作方式。新浪微薄就是使用这样的方式的典型。 还有个问题,当用户网络上读取微薄的时候。...();// 通知listView刷新数据 } }, 2000); } });...调用loadmoreDate方法,为listview绑定很多其它的数据。通过adapter的notifyDataSetChanged方法通知listview刷新,显示刚增加的数据。...同一时候listview绑定了onScrollListener监听器。而且实现了onScroll和onScrollStateChanged方法。 在后者方法。...移除listview底部视图,不让继续载入。 同一时候在loadmoreDate方法也对最大数据量做对应的操作来推断载入数量。(默认载入5条。不足5条时载入剩余的)。

97510

Android ListView等列表设置空布局

在Android平台上,listView 是特别常用的组件之一,我们在向用户展示列表数据时,通常要考虑: 列表有数据和无数据空的状态,因为网络环境各异,难免刷新失败什么的; 在此之前我是使用ViewStub...来实现,通过判断listview列表数据是否为空来设置ViewStub的隐藏和显示,或者设置lIstview的显示或隐藏; 但是,对ViewStub不是特别的了解,把控不好,只是控制其显示和隐藏,如果对其设置点击刷新数据等交互时...(android listview空布局刷新数据:列表无数据时显示数据加载失败的提示,并且点击提示,刷新数据); 我们来看一下ListView的继承关系, ListView extends AbsListView...if (adapter.getCount() == 0) { adapter.setCount(1); adapter.notifyDataSetChanged...放同一个布局, 这个点我们看源代码实现方法也是让他们交换显示的参数,而不是添加或者删除组件视图.

71320

android ListView 嵌套 ListView

实现的效果是这个样子的 看上去效果还是不错,不过现在有个刷新问题一直没能解决,刷新的时候里面的adapter进行刷新的时候总是会让里面的listview消失掉,应该是父listview刷新完后,子...listview还未刷新完成,导致测量的高度不对,就会消失,像当前组已关闭这种,现在这个问题还没有想到办法解决的,试过比较多的方法,添加接口让子listview 刷新完成后再去更新父listview,但还是没有作用...,也用过ExpandableListView,但是效果达不到这种,所以没办法还是得用这种办法,有大神知道怎么解决刷新listview时子listview消失的方法,指导下我,比较奇怪的时候刚开始初始化的时候子...listview是默认不显示的,当点击父listview去张开子listview,父listview应该会再次刷新,但子listview展开是可以的,然后下一次更新数据源的时候子listview又会自动关闭...,我猜应该是在刷新listview的时候,父listview先更新完成,子listview的高度测量就没有对!

1.3K20

基于Android开发的天气预报app(源码下载)「建议收藏」

这里其实也可以其它天气服务商提供的api接口获取城市信息。...下拉刷新功能 本项目中的下拉刷新功能是使用SwipeRefreshLayout控件实现的,实现的步骤很简单: 1、在布局文件实现下拉刷新功能的地方添加android.support.v4.widget.SwipeRefreshLayout...2、在程序定义并设置相应属性(样式等等)和监听器。 3、设置事件的相应响应和启动下拉刷新和结束下拉刷新。...RecycleListView的实现比优化的ListView麻烦一些,但是功能上比ListView要更强大,因为他的显示不仅可以竖屏,还可以横屏。...有没有发现和ListView,ViewPager的实现步骤很相似呢。 布局圆角功能 布局圆角主要是为了让布局的控件看起来美观一些。 实现很简单 1、在drawable定义xml文件 <?

2.3K10

listview滑动删除

今天还是给大家带来自定义控件的编写,自定义一个ListView的左右滑动删除Item的效果,这个效果之前已经实现过了,有兴趣的可以看下Android 使用Scroller实现绚丽的ListView左右滑动删除...()就实现了item滑动和透明度渐变的效果,为了使得我们在滑动item的时候,ListView上下滚动,我们必须返回true来屏蔽ListView的上下滚动,这里需要我们要非常熟悉Android的事件分发机制...item的高度, 然后添加AnimatorListener监听动画的状态(例如动画开始,结束,重复等)监听,在动画结束的回调函数onAnimationEnd()删除该item的数据,调用notifyDataSetChanged...Remove掉,况且ListView也不能直接Remove掉Item的,只能将数据源删除,在调用notifyDataSetChanged()刷新,所以我们需要将刚刚滑出屏幕高度设置为0的Item恢复回来...控件,接下来就是主界面的代码编写,跟平常的ListView使用一样,但是我们需要设置OnDismissCallback()监听,在 onDismiss()删除该位置对于的数据,刷新ListView

1.8K70
领券