Android中Listview实现分页加载效果OnScrollListener
activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#000000"
> <ListView
android:id="@+id/listveiw"
android:layout_width="match_parent"
android:layout_height="match_parent" ></ListView> </RelativeLayout>

MainActivity.java

package com.bawei.day05_onscrolllistener; import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends Activity implements OnScrollListener{ private ListView listView;
private List<String> list;
//是否需要加载更多
private boolean isLoad = false; int count = 1;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listveiw);
list = new ArrayList<String>();
//赋值
getData();
//适配
adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_expandable_list_item_1,list);
listView.setAdapter(adapter);
//监听
listView.setOnScrollListener(this); }
//赋值
private void getData() { for (int i = 0; i <30; i++) {
list.add(i+"");
}
} public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
Log.i("TAG", "firstVisibleItem="+firstVisibleItem);
Log.i("TAG", "visibleItemCount="+visibleItemCount);
Log.i("TAG", "totalItemCount="+totalItemCount);
//isLoad为是否滚动到底部
isLoad = ((firstVisibleItem+visibleItemCount)==totalItemCount);
}
/* (non-Javadoc)
*
* SCROLL_STATE_FLING 手指做出抛的动作
* SCROLL_STATE_IDLE 停止滚动
* SCROLL_STATE_TOUCH_SCROLL 手指在屏幕上,屏幕滚动
* @see android.widget.AbsListView.OnScrollListener#onScrollStateChanged(android.widget.AbsListView, int)
*/
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
Log.i("TAG", "onScrollStateChanged isLoad="+isLoad+";是否是停止滚动:"+(scrollState==OnScrollListener.SCROLL_STATE_IDLE));
Log.i("TAG", "scrollState"+scrollState);
//当ListView滚动到底部,并且ListView停止滚动
//isLoad为是否滚动到底部
//scrollState为当前状态有三种 ,不断变化,只有当他停止滚动才加载数据
if(isLoad&&scrollState==OnScrollListener.SCROLL_STATE_IDLE){
Toast.makeText(getApplicationContext(), "开始加载数据", 1).show();
//得到当前显示个数
int id=adapter.getCount();
//加载数据
for (int i = id; i < id+10; i++) {
list.add("加载第"+count+"次:"+i) ;
}
//加载了几次
count++;
//刷新
adapter.notifyDataSetChanged();
}
} }


Android中Listview实现分页加载效果OnScrollListener的更多相关文章
- Android基本控件之listView(三)<用ListView实现分页加载>
我们之前讨论了ListView的基本使用方法和ListView的优化 今天我们再来讨论一个关于ListView的一个新的东西~就是分页加载.那么什么是分页加载呢?简单点说,就是"下拉刷新&q ...
- ListView实现分页加载(一)制作Demo
一.什么是分页加载 在下面的文章中,我们来讲解LitView分页加载的实现.什么是分页加载呢?我们先看几张效果图吧,如下: ...
- ListView实现分页加载(三)实现分页加载
在上一篇中,我们实现了底部布局(即带上了进度条).没有读过的朋友可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4866966.html 但是进度条 ...
- WP8.1开发中ListView控件加载图列表的简单使用(1)
我也是刚接触WP编程没几个月,就是在这段时间一直闲着没事,然后又比较喜欢WP这款系统,就学习了WP这方面的开发言语,自学是很困难的,掌握这方面的资料不多,很初级,就是自己在网上找资料学习过程中,看到别 ...
- android UI进阶之实现listview的分页加载
上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式.新浪微薄就是使用这种方式的典型. 还有个问题,当用户从网络上读取微薄的时候,如果一 下子全部加载用户未读的微薄这将耗费比较长的时间,造成 ...
- ListView实现分页加载(二)实现底布局
上一篇中,我们搭建好了一个Demo.没有阅读的可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4866929.html 在这一篇中,我们将实现Lis ...
- Android中常见的图片加载框架
图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行 ...
- WinForm ListView不分页加载大量数据
WinForm的ListView在加载大量数据时会出现闪烁的问题,同时数据加载很慢.如果你的列表中有超过千条的数据且不做特殊处理还是用普通的ListView.Items.Add(),估计你的用户得抱怨 ...
- android中listview的item滑动删除效果(已解决listview点击问题)
领导看到iphone上tableview有个滑动删除的效果,要求在android上也实现,搜了下资料,实现起来比较简单,可弄到后面,居然不能点击了,把一篇文章中的代码修改了一下,捣鼓了一番,搞定,下面 ...
随机推荐
- asp.net 把数据导出为excel
本篇介绍c#中如何使用DataTable导出Excel,至于其他的导出方法,这里不作介绍! 1.首页从数据库读取数据,得到DataTable: DataTable dt = HelperExecute ...
- JavaScript实现在页面上的文本框中输入小写字母自动变为大写字母
<script language="javascript" type="text/javascript"> $(function () { $(&q ...
- 【Android Studio快捷键】之导入相应包声明(import packages)
可能import 单个声明的快捷键大家都很容易找到,Alt+Enter.但是如果我要一次性import文件中所有的声明,这个快捷键是什么呢,找啊找的,就是没找到,以前在Eclipse是Ctrl+1,但 ...
- java.lang.NoClassDefFoundError: Could not initialize class ......
在测试数据字典工具类的时候一直报这个错误,找了好久,原来是SpringContextUtils这个类没有放入到容器中. 但是我在SpringContextUtils上面加了注解的,为什么注解没有扫到呢 ...
- HTML: 仿写一个财经类静态的网页
要求:仿写一个静态的网页,主要采用HTML+CSS+DIV的布局方式, 新建两个文件:demo.html.demo.css 图片素材:image.zip demo.html代码如下: <!doc ...
- jQuery选择器总结(转)
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...
- hibernate一对多注解
package net.zmcheng.model; import java.util.HashSet;import java.util.Set; import javax.persistence.C ...
- Java基础之创建窗口——使用卡片布局管理器(TryCardLayout)
控制台程序. 卡片布局管理器会生成一叠组件——一个组件放在另一个组件的上面.添加到容器中的第一个组件在堆栈的顶部,因此是可见的,添加的最后一个组件在堆栈的底部.使用默认的构造函数CardLayout( ...
- JQuery实现页面企业广告图片切换和新闻列表滚动效果
最近用到一个页面上图片左右切换和新闻列表滚动呈现的效果,整理如下: 前段代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...
- 5.POST中文乱码解决方案
Spring Web MVC提供了Filter用于解决POST方式造成的中文乱码问题,具体配置如下: <filter> <filter-name>CharacterEncodi ...