码迷,mamicode.com
首页 > 移动开发 > 详细

android 检测ListView滚动到的位置

时间:2014-07-25 03:54:40      阅读:7754      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   os   strong   io   

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)在滚动的时候获得一些参数:
通过一个小例子来说明:
 1 public class MainActivity extends Activity {
 2     private ListView listView;
 3 
 4     @Override
 5     protected void onCreate(Bundle savedInstanceState) {
 6         super.onCreate(savedInstanceState);
 7         setContentView(R.layout.activity_main);
 8         listView = (ListView) findViewById(R.id.lsitView);
 9         List<String> list = new ArrayList<String>();
10         for (int i = 0; i < 20; i++) {
11             list.add("这是第" + i + "个");
12 
13         }
14         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
15                 android.R.layout.simple_list_item_single_choice, list);
16         listView.setAdapter(adapter);
17         listView.setOnScrollListener(new ListView.OnScrollListener() {
18 
19             @Override
20             public void onScrollStateChanged(AbsListView view, int scrollState) {
21                 switch (scrollState) {
22 
23                 case OnScrollListener.SCROLL_STATE_IDLE: // 没有滚动的时候
24                     System.out.println("最后显示的listview的位置是--->>"
25                             + listView.getLastVisiblePosition());
26                     if (listView.getLastVisiblePosition() == (listView
27                             .getCount() - 1)) {
28                         Toast.makeText(MainActivity.this, "滑到listView底了",
29                                 Toast.LENGTH_SHORT).show();
30 
31                     }
32 
33                     if (listView.getFirstVisiblePosition() == 0) {
34                         Toast.makeText(MainActivity.this, "listView顶头了",
35                                 Toast.LENGTH_SHORT).show();
36                     }
37 
38                     break;
39 
40                 case OnScrollListener.SCROLL_STATE_FLING:
41                     System.out.println("SCROLL_STATE_FLING");
42                     break;
43 
44                 case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
45                     System.out.println("SCROLL_STATE_TOUCH_SCROLL"
46                             + "能看到的最后一个显示的位置--->>"
47                             + listView.getLastVisiblePosition());
48                     break;
49                 default:
50 
51                     break;
52 
53                 }
54 
55             }
56 
57             /**
58              * view The view whose scroll state is being reported
59              * firstVisibleItem the index of the first visible cell (ignore if
60              * visibleItemCount == 0) visibleItemCount the number of visible
61              * cells totalItemCount the number of items in the list adaptor
62              */
63             @Override
64             public void onScroll(AbsListView view, int firstVisibleItem,
65                     int visibleItemCount, int totalItemCount) {
66 
67             }
68         });
69 
70     }
71 }

源码下载地址:
源码

android 检测ListView滚动到的位置,布布扣,bubuko.com

android 检测ListView滚动到的位置

标签:android   style   blog   http   color   os   strong   io   

原文地址:http://www.cnblogs.com/liangstudyhome/p/3866908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!