精确监听 Android ListView 滑动到底部

main.xml如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< RelativeLayout  
     xmlns:android = "http://schemas.android.com/apk/res/android" 
     xmlns:tools = "http://schemas.android.com/tools" 
     android:layout_width = "fill_parent" 
     android:layout_height = "fill_parent" 
    
   
     < ListView 
         android:id = "@+id/listView" 
         android:layout_width = "fill_parent" 
         android:layout_height = "fill_parent" 
         android:layout_centerInParent = "true" 
      /> 
   
</ RelativeLayout >


listviewitem.mxl如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? xml version = "1.0" encoding = "utf-8" ?> 
< RelativeLayout  
     xmlns:android = "http://schemas.android.com/apk/res/android" 
     android:layout_width = "fill_parent" 
     android:layout_height = "fill_parent"
   
     < TextView 
         android:id = "@+id/textView" 
         android:layout_width = "fill_parent" 
         android:gravity = "center" 
         android:layout_height = "80dip" 
      /> 
   
</ RelativeLayout >


MainActivity如下:

?
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.util.ArrayList; 
import java.util.HashMap; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AbsListView; 
import android.widget.AbsListView.OnScrollListener; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
   
public class MainActivity  extends Activity { 
     private ListView mListView; 
     private SimpleAdapter mSimpleAdapter; 
     private HashMap<String, Object> mHashMap; 
     private ArrayList<HashMap<String, Object>> mArrayList; 
       
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
         super .onCreate(savedInstanceState); 
         setContentView(R.layout.main); 
         init(); 
    
     private void init(){ 
         mListView=(ListView) findViewById(R.id.listView); 
         mArrayList= new ArrayList<HashMap<String,Object>>(); 
         addDataForListView(); 
         mSimpleAdapter= new SimpleAdapter 
        (MainActivity. this , mArrayList, R.layout.listviewitem,  new String []{ "id" }, new int []{R.id.textView}); 
         mListView.setAdapter(mSimpleAdapter); 
         mListView.setOnScrollListener( new OnScrollListenerImple()); 
           
    
     private void addDataForListView(){ 
         System.out.println( "====>Add data to ListView" ); 
         for ( int i =  0 ; i <  10 ; i++) { 
             mHashMap= new HashMap<String, Object>(); 
             mHashMap.put( "id" "" +i); 
             mArrayList.add(mHashMap); 
        
    
     private class OnScrollListenerImple  implements OnScrollListener{ 
         @Override 
         public void onScroll(AbsListView listView,  int firstVisibleItem, int visibleItemCount,  int totalItemCount) { 
             int lastItem = firstVisibleItem + visibleItemCount; 
             if (lastItem == totalItemCount) { 
                 System.out.println( "Scroll to the listview last item" ); 
                 View lastItemView=(View) listView.getChildAt(listView.getChildCount()- 1 ); 
                 if ((listView.getBottom())==lastItemView.getBottom()) { 
                     System.out.println( "========Scroll to the listview bottom =============" ); 
                     addDataForListView(); 
                     mSimpleAdapter.notifyDataSetChanged(); 
                
            
        
   
         @Override 
         public void onScrollStateChanged(AbsListView listview,  int scrollState) { 
               
        
           
    
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值