cq16212512 2019-07-04 00:15 采纳率: 64.3%
浏览 825
已采纳

android中listview如何动态加载数据

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

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

  • 写回答

4条回答 默认 最新

  • Burcy Wen 2019-07-04 09:47
    关注

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • threenewbee 2019-07-04 10:00
    关注
    评论
  • 代码的灵魂是bug! 2019-07-04 10:19
    关注

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

    评论
  • 你好好呀! 2019-07-04 11:15
    关注

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

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 Google Chrome 所有页面崩溃,三种解决方案都没有解决,我崩溃了
  • ¥20 使用uni-app发起网络请求,获取重定向302返回的cookie
  • ¥20 手机外部浏览器拉起微信小程序支付 (相关搜索:微信小程序)
  • ¥20 怎样通过一个网址找到其他同样模版的网址
  • ¥30 XIAO esp32c3 读取FDC2214的数据
  • ¥15 在工控机(Ubuntu系统)上外接USB蓝牙硬件进行蓝牙通信
  • ¥15 关于PROCEDURE和FUNCTION的问题
  • ¥100 webapi的部署(标签-服务器)
  • ¥20 怎么加快手机软件内部计时的时间(关键词-日期时间)
  • ¥15 C语言除0问题的检测方法