布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
package com.chen.demo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
private ListView listview;
private List<String> dataList;
private MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview);
dataList = new ArrayList<String>();
myAdapter = new MyAdapter();
for (int i = 0; i < 30; i++) {
dataList.add("基本数据-" + i);
}
listview.setAdapter(myAdapter);
listview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
/**
* scrollState
* 0:停止滑动
* 1:手指按住滑动
* 2:惯性滑动
*/
Log.e("chen", "scrollState---" + scrollState);
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//firstVisibleItem:表示在现时屏幕第一个ListItem(部分显示的ListItem也算)在整个ListView的位置
Log.e("chen", "firstVisibleItem---" + firstVisibleItem);
//visibleItemCount:表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数
Log.e("chen", "visibleItemCount---" + visibleItemCount);
//totalItemCount:表示ListView的item总数
Log.e("chen", "totalItemCount---" + totalItemCount);
//listView.getFirstVisiblePosition()表示在现时屏幕第一个ListItem(部分显示也算)
Log.e("chen", "getFirstVisiblePosition()---" + listview.getFirstVisiblePosition());
//listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(部分显示也算)
Log.e("chen", "getLastVisiblePosition()---" + listview.getLastVisiblePosition());
}
});
}
class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return dataList.size() == 0 ? 0 : dataList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(MainActivity.this);
tv.setText(dataList.get(position));
tv.setTextSize(30);
return tv;
}
}
}