您的位置:首页 > 移动开发 > Android开发

android 检测ListView滚动到的位置

2014-07-25 01:08 344 查看
ListView滚动

1.要用到一个监听事件是:setOnScrollListener();

API解释是:

Set the listener that will receive notifications every time the list scrolls.

Parameters:l the scroll listener

2.它里面包含了两个方法:一个是:onScrollStateChanged(AbsListView view, int scrollState),用来表明ListView是什么状态(静止,滑动);scrollState 为OnScrollListener.SCROLL_STATE_IDLE:表明ListView是在静止状态      为OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:表明在滑动且手指没有离开屏幕.另外一个是:onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount)在滚动的时候获得一些参数:通过一个小例子来说明:

public class MainActivity extends Activity {
private ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lsitView);
List<String> list = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
list.add("这是第" + i + "个");

}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice, list);
listView.setAdapter(adapter);
listView.setOnScrollListener(new ListView.OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {

case OnScrollListener.SCROLL_STATE_IDLE: // 没有滚动的时候
System.out.println("最后显示的listview的位置是--->>"
+ listView.getLastVisiblePosition());
if (listView.getLastVisiblePosition() == (listView
.getCount() - 1)) {
Toast.makeText(MainActivity.this, "滑到listView底了",
Toast.LENGTH_SHORT).show();

}

if (listView.getFirstVisiblePosition() == 0) {
Toast.makeText(MainActivity.this, "listView顶头了",
Toast.LENGTH_SHORT).show();
}

break;

case OnScrollListener.SCROLL_STATE_FLING:
System.out.println("SCROLL_STATE_FLING");
break;

case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
System.out.println("SCROLL_STATE_TOUCH_SCROLL"
+ "能看到的最后一个显示的位置--->>"
+ listView.getLastVisiblePosition());
break;
default:

break;

}

}

/**
* view The view whose scroll state is being reported
* firstVisibleItem the index of the first visible cell (ignore if
* visibleItemCount == 0) visibleItemCount the number of visible
* cells totalItemCount the number of items in the list adaptor
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {

}
});

}
}


源码下载地址:
源码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: