Android_listview_scrollListener
layout.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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></ListView> </RelativeLayout>
listview_item_name.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"/> </LinearLayout>
main.java
package com.example.day09_listview_scrolllistener; 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.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView; public class MainActivity extends Activity { protected static final String TAG = "MainActivity";
private ListView listView;
private List<String> data;
private boolean isBottom = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
data = getData();
MyAdapter myAdapter = new MyAdapter();
//设置适配器
listView.setAdapter(myAdapter);
//设置滚动监听
listView.setOnScrollListener(new OnScrollListener() {
/**
* 当滚动状态改变的时候调用
* AbsListView view, listView的父类
* int scrollState 滚动状态
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// SCROLL_STATE_FLING 表示惯性滑动--2
// SCROLL_STATE_IDLE 表示停止滑动--0
// SCROLL_STATE_TOUCH_SCROLL 表示正在滑动--1
// Log.i(TAG, "onScrollStateChanged----scrollState"+scrollState);
//1.滑动到屏幕最底部2.停止滚动
if(scrollState == OnScrollListener.SCROLL_STATE_IDLE && isBottom ==true){
Log.i(TAG, isBottom+""); }
}
/**
* 当listView滚动的时候调用,第一次加载时也会调用
* int firstVisibleItem, 表示当前屏幕显示的第一条数据索引
* int visibleItemCount, 表示当前屏幕显示的总数量
* int totalItemCount 表示的是数据的总数量
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
Log.i(TAG, "onScroll----firstVisibleItem-"+firstVisibleItem+"---visibleItemCount-"+visibleItemCount+"---totalItemCount"+totalItemCount);
isBottom = (firstVisibleItem + visibleItemCount == totalItemCount);
}
});
}
private List<String> getData(){
List<String> list = new ArrayList<String>();
for (int i = 0; i < 100; i++) {
list.add("杭州----"+i);
}
return list; }
class MyAdapter extends BaseAdapter{ @Override
public int getCount() {
return data.size();
} @Override
public Object getItem(int position) {
return data.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder viewHolder;
if(view == null){
view = View.inflate(MainActivity.this, R.layout.listview_item_name,null);
viewHolder = new ViewHolder();
viewHolder.name = (TextView)view.findViewById(R.id.tv_name);
view.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.name.setText(data.get(position));
return view;
} }
class ViewHolder{
private TextView name;
} }

Android_listview_scrollListener的更多相关文章
随机推荐
- java设计模式—Adapter模式
1.核心意图: 将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作. 该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adap ...
- 解读四大移动web应用开发框架真相
[51CTO译文]近来关于新的移动网页框架及移动平台存在不少争论.平心而论,这些工具在条款内容方面的混乱与模糊也是造成大家误解的原因之一.我希望通过几条简短的评述来尽量清理这种认识层面上的混乱状态. ...
- opencv 在工业中的应用:圆孔定位
在工业中产品或者夹具上经常有圆形孔,我们可以利用这些孔来对产品或者夹具进行定位.我用OPENCV写了个DEMO 程序,介绍如下: (1)首先点击打开图像按钮打开一幅图像 (2)进行一些参数设置 (3) ...
- 问题:关于坛友的一个定时重复显示和隐藏div的实现
需求:打开页面只看到DIV2,等完秒数之后在显示DIV3.手动关闭DIV3后在重新数秒 我设置的间隔时间是3秒,代码如下: html+css: 1: <!DOCTYPE HTML> htm ...
- Max Sub-matrix
Max Sub-matrix 教练找的题目,目前样列过了 题意:找子矩阵的最大周长 思路:先离散每列,再枚举列(n*n),在当前枚举的两列之间求每行的和(n*n*n),但是开两个数组,一个包含两列上的 ...
- Cppcheck代码分析(2)
功能 解析函数中的可能的代码执行流 函数实际执行中只会执行代码流中的一条流 分析: 分支语句 if-else ,switch-case 循环语句 while, do-while ,for 代码流举例 ...
- 【Spark学习】Apache Spark项目简介
引言:本文直接翻译自Spark官方网站首页 Lightning-fast cluster computing 从Spark官方网站给出的标题可以看出:Spark——像闪电一样快的集群计算 Apache ...
- HDU-4618 Palindrome Sub-Array 暴力枚举
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4618 直接暴力枚举中心点,在中间如果求不出最大值直接跳过优化下... //STATUS:C++_AC_ ...
- ./wls1036_linux32.bin: /lib/ld-linux.so.2: bad ELF interpreter
[CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter解决 环境: [orangle@localhost Downloads]$ uname -m ...
- unigui下载文件
lblProduct.Caption := '<a href="files\1.t" target=new>要下载的文件名</a>';