這篇文章主要介紹了Android中如何判斷listview是否滑動到頂部和底部的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android中如何判斷listview是否滑動到頂部和底部文章都會有所收獲,下面我們一起來看看吧。
成都創新互聯2013年開創至今,是專業互聯網技術服務公司,擁有項目成都做網站、成都網站設計、成都外貿網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元辰溪做網站,已為上家服務,為辰溪各地企業和個人服務,聯系電話:028-86922220頂部的判斷,根據listview中的第一個item距離listview頂部的距離是否為0。
底部的判斷,根據listview中的最后一個item的底部與第一個item的頂部的距離是否為整個listview的高度。
上面的兩個想法代碼實現如下:
private void setLiseners() { // listview設置滑動監聽 lsv_new_house.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int i) { } @Override public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if(firstVisibleItem == 0){ View first_view = lsv_new_house.getChildAt(0); if(first_view != null && first_view.getTop() == 0){ // LogUtils.e("已經滾動到頂部了"); bl_down = true;// 可以下拉刷新了 }else { // LogUtils.e("還沒到頂部"); bl_down = false;// 未滑動到頂部不讓下拉刷新 } } if(firstVisibleItem + visibleItemCount == totalItemCount){ View last_view = lsv_new_house.getChildAt(lsv_new_house.getChildCount() - 1); // LogUtils.e("height = " + lsv_new_house.getBottom());// 最后一個item的底部與listview第一個item頂部之間的距離 // int h = lsv_new_house.getHeight(); // LogUtils.e("h = " + h); if(last_view != null && last_view.getBottom() == lsv_new_house.getHeight()){ // LogUtils.e("已經滾動到最底部了"); bl_up = true;// 可以上拉加載了 }else { // LogUtils.e("還沒到底部"); bl_up = false;// 未滑動到底部不讓上拉加載 } } } }); }
代碼都是很簡單的,簡單說一下。獲取第一個item的view和最后一個item的view,并進行相應的判斷即可。
而且這樣判斷會更加的精確,因為只要ListView中第一個item出現在屏幕上端,即使只出現一部分,firstVisibleItem 的值也依然為0, onScroll()回調就會發生; 同樣ListView 的最后一個 item 即使只顯示一部分,((firstVisibleItem + visibleItemCount) == totalItemCount) 的值也是等于totalItemCount。
關于“Android中如何判斷listview是否滑動到頂部和底部”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Android中如何判斷listview是否滑動到頂部和底部”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道。
本文標題:Android中如何判斷listview是否滑動到頂部和底部-創新互聯
本文地址:http://m.newbst.com/article12/hcjdc.html
成都網站建設公司_創新互聯,為您提供動態網站、自適應網站、網站排名、品牌網站設計、網站設計、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯