android中listview如何动态加载数据

由于工作需要,现需要从数据库中读取数据显示在listview控件上,但由于数据库中数据比较多,一次全部显示出来肯定不现实,现需要只显示部分数据占满手机屏幕,然后随着手指向下滑动逐步将其余的数据全部显示出来。现有如下两个问题 :

1. 是先将数据库中的数据全部读取出来,然后随着手指下滑逐个加载出来,还是刚开始只从数据库中读取少量数据显示在屏幕上,然后随着手指下滑再逐次读取剩下的数据显示出来。
2. 具体该如何操作

这个需要看你的数据量具体有多大,

listview控件本身就是view复用的,多条数据,也是重复复用的当前视图区可显示的view数量,上下滑动,将数据反复填入这些view上罢了;并非有多少数据,创建多少view;

不过如果数据量过大,你可以通过使用带上拉加载更多的组件,网上比较多,如一页设定显示最多10条,当触发加载更多事件中,去数据库中分页获取接下来的10条记录,这样会流畅很多,这也是常见的从后台获取数据加载的方式

看这个完整的例子:https://download.csdn.net/download/qq_32673327/9584533

不管数据量多少,做上拉加载是最合适不过的了,比如一次加载20条,当向上滑动到可以触发加载事件时,再调一次接口把21到40的数据取回来,依次类推,上拉加载的控件很多,使用也很方便

楼主说的 不就是分页吗?这里说明一下 ListView本身是为列表复用而做的,你要在适配器里面 做复用的判断,像楼主说的 数据库的数据可能很多
一次加载不完,那么就分页了 一次加载20条数据 当第二十条数据显示到屏幕中的时候 你就去加载第二页的数据 然后把第二页的数据 累加到
集合中,调用适配器的notifyDataSetChanged 方法 刷新列表。对于楼主的功能,目前来说 使用recycleview+分页机制是最好实现的,网上很多案例的
这里推荐一下 BRVAH 一个非常强大的recycelview的适配器库,可以直接实现分页加载,官方地址:https://www.jianshu.com/p/b343fcff51b0/