下拉刷新組件 PullToRefreshListView的使用

1.導入庫

  下載 Android-PullToRefresh-master.zip 包

   解壓後將裏面的library 作爲android 項目導入

   然後把library 作爲工程的依賴

  

  

2.佈局文件 

        <com.handmark.pulltorefresh.library.PullToRefreshListView

                        android:id="@+id/check_project_list"

                     android:layout_width="fill_parent"

                  android:layout_height="fill_parent"

                       android:cacheColorHint="#000000"

                  android:fadingEdge="none"

                           android:fastScrollEnabled="false"

                           android:footerDividersEnabled="false"

                           android:headerDividersEnabled="false"

                           android:smoothScrollbar="true"

                           ptr:ptrAnimationStyle="flip"

                           ptr:ptrHeaderTextAppearance ="@android:attr/textAppearanceMedium">    

        </com.handmark.pulltorefresh.library.PullToRefreshListView>

 

3.初始化設置信息

               projectListView = (PullToRefreshListView)findViewById(R.id. check_project_list);

               projectListView.setMode(Mode.BOTH); 

              

               ILoadingLayout startLabels = projectListView   

                       .getLoadingLayoutProxy( true, false );   

             startLabels.setPullLabel( "下拉刷新..." );// 剛下拉時,顯示的提示   

             startLabels.setRefreshingLabel( "正在載入..." );// 刷新時   

             startLabels.setReleaseLabel( "放開刷新..." );// 下來達到一定距離時,顯示的提示   

          

              ILoadingLayout endLabels = projectListView.getLoadingLayoutProxy(   

                       false, true );   

               endLabels.setPullLabel( "上拉加載..." );// 剛下拉時,顯示的提示   

               endLabels.setRefreshingLabel( "正在載入..." );// 刷新時   

               endLabels.setReleaseLabel( "放開加載..." );// 下來達到一定距離時,顯示的

 

4.監聽下拉刷新與上拉加載

                 projectListView.setOnRefreshListener(new OnRefreshListener2<ListView>(){

 

                      @Override

                      public void onPullDownToRefresh(

                                  PullToRefreshBase<ListView> refreshView) {

                           

                            projectList.clear();

                            pageNo = 1;

                            new FinishRefresh().execute(); 

                queryProjects( pageNo, 10);

                           

                     }

 

                      @Override

                      public void onPullUpToRefresh(

                                  PullToRefreshBase<ListView> refreshView) {

                            // TODO Auto-generated method stub

                            pageNo = pageNo + 1;

                            new FinishRefresh().execute(); 

                queryProjects( pageNo, 10);

                     } 

        

 

              

        });

 

 

 

 

        private class FinishRefresh extends AsyncTask<Void, Void, Void>{   

        @Override   

        protected Void doInBackground(Void... params) {   

             try {   

                 Thread. sleep(1000);   

             } catch (InterruptedException e) {   

             }   

            return null ;   

        }

       

        @Override   

        protected void onPostExecute(Void result){   

//          adapter.notifyDataSetChanged(); 

               projectListView.onRefreshComplete();   

        }

       }   

 

注意:查詢完成後需要用 checkProjectAdapter .notifyDataSetChanged();    更新數據,而不是每次都重新設置一下數據模型

checkProjectAdapter = new CheckProjectAdapter( this, R.layout.project_item, projectList );

projectListView .setAdapter(checkProjectAdapter);

這段代碼應該在初始化時設置一次就夠了,如果每次都調用setAdapter,會出現加載後滾動條會定位到頂部列表的問題

 

 

----
spring mvc+tomcat源碼分析視頻(鏈接複製在瀏覽器打開)

https://study.163.com/course/courseMain.htm?share=2&shareId=480000001919582&courseId=1209399899&_trace_c_p_k2_=6d81bc445e9c462ab8d6345e40f6b0bf

發佈了89 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章