android listview 预先加载,Android中listView的下拉加载功能实现

今天给大家讲讲android开发中比较常见的listView的下拉加载,其实也能够叫做分页加载。为何会有这个叫法呢?说说我的理解吧!

从字面上很好理解。当你滑动1个列表到底部的时候,这个时候就会出现正在加载的底部加载布局去加载更多的数据。这里拿微信作为1个例子,以下图所示:

76b34bdc4197360e9d9d500f1ca61934.png

如上图所示红色方框的部份就是底部的加载布局。从1定程度上这样做是必要的,为了优化用户的体验。你可以想一想,假设你点开微信的朋友圈的时候,如果没有做分页加载,那末你需要等待很久的时间才能够看到你和朋友发的1些状态。这是由于这个时候代码需要给服务器发送要求获得数据并显现这些数据。这个时候获得数据就成了最耗时的问题。为何这么说?如果没有分页加载的功能,那末,你肯定需要获得全部的数据,你可以想一想,好几年的数据,数据量可很多啊!发要求去获得这些数据并显现它们是会很耗时间的。所以分页加载就很好的解决了这个问题。你先获得其中的10几条数据并显现它们。当你1直从头阅读这10几条数据到结束的时候,这个时候再去加载更多的数据并显现它们。如上图所示,这样才是好的用户体验。

概念清晰后,具体实现的部份到了。这里实现微信的下拉加载效果(个人感觉很不错,简洁明了),大概需要以下几个步骤:

first — 首先构建下拉加载时的底部加载布局(这里命名为view_more)

second — 获得数据并给listView设置adapter;设置好adapter后,调用方法:listView.addFooterView(view_more);// TODO 添加底部记载布局再往listView的底部添加底部加载布局。最后对listView设置滑动监听器:listView.setOnScrollListener(this);// TODO listView这是滑动监听 并重写相干方法:

public void onScrollStateChanged(AbsListView view, int scrollState) {} 和 public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {} 这两个重写的方法1个是监听listView的滑动状态改变,另外一个是监听listView的滑动。

third — 当滑动监听设置好后,在重写的两个方法里面判断listView是不是滑动到底部并且停止滑动(即滑动状态为停止滑动)。如果此时满足这个条件,那末就加载更多的数据。数据加载完成后就刷新数据源,此时会有更多的数据在底部出现。

fourth — 最后当数据全部加载好后,移除第2步中添加的底部加载布局view_more,调用方法:listView.removeFooterView(view_more);// TODO 移除底部的加载布局

下面写代码1步1步来实现:

1、首先准备1个底部加载布局,命名为view_more

android:layout_width="match_parent"

android:layout_height="80dp"

android:background="#8888" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:text="正在加载..."

android:textSize="

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android ,你可以使用 ListView 实现下拉加载功能。下面是实现步骤: 1. 在布局文件添加 ListView 组件,并在其添加一个 ProgressBar 组件作为加载指示器。 ``` <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" /> <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> ``` 2. 在 Activity 或 Fragment 的 onCreate 方法,获取 ListView 组件并设置一个适配器。 ``` ListView listView = (ListView) findViewById(R.id.listView); listView.setAdapter(adapter); ``` 3. 在 onCreate 方法,设置 ListView 的滚动监听器,当滚动到列表底部时触发下拉加载。 ``` listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int i) {} @Override public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem + visibleItemCount == totalItemCount && totalItemCount != 0) { // 到达列表底部,触发下拉加载 loadMoreData(); } } }); ``` 4. 在 loadMoreData 方法,显示 ProgressBar 加载指示器,并开始加载更多数据。 ``` private void loadMoreData() { progressBar.setVisibility(View.VISIBLE); // 加载更多数据 // ... } ``` 5. 加载完成后,隐藏 ProgressBar 加载指示器,并更新 ListView 的适配器。 ``` private void loadMoreData() { progressBar.setVisibility(View.VISIBLE); // 加载更多数据 // ... progressBar.setVisibility(View.GONE); adapter.notifyDataSetChanged(); } ``` 这样就可以实现 ListView下拉加载功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值