日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法

發(fā)布時間:2025/3/15 Android 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天實(shí)現(xiàn)listview的下拉刷新和上拉加載的時候,遇到了一個問題,*就是說需要根據(jù)listview中滑動的位置來進(jìn)行下拉刷新和上拉加載。*

具體點(diǎn),只有當(dāng)我的listview滑動到最頂部的時候,這時候下拉才執(zhí)行刷新操作;只有當(dāng)我的listview滑動到最底部的時候,這時候上拉才執(zhí)行加載操作。

那么怎么判斷l(xiāng)istview的滑動位置呢?其實(shí)還是比較好解決的,說一下我的想法:

頂部的判斷,根據(jù)listview中的第一個item距離listview頂部的距離是否為0。

底部的判斷,根據(jù)listview中的最后一個item的底部與第一個item的頂部的距離是否為整個listview的高度。

上面的兩個想法代碼實(shí)現(xiàn)如下:

private void setLiseners() {

// listview設(shè)置滑動監(jiān)聽

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("已經(jīng)滾動到頂部了");

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("已經(jīng)滾動到最底部了");

bl_up = true;// 可以上拉加載了

}else {

// LogUtils.e("還沒到底部");

bl_up = false;// 未滑動到底部不讓上拉加載

}

}

}

});

}

代碼都是很簡單的,簡單說一下。獲取第一個item的view和最后一個item的view,并進(jìn)行相應(yīng)的判斷即可。

而且這樣判斷會更加的精確,因?yàn)橹灰狶istView中第一個item出現(xiàn)在屏幕上端,即使只出現(xiàn)一部分,firstVisibleItem 的值也依然為0, onScroll()回調(diào)就會發(fā)生; 同樣ListView 的最后一個 item 即使只顯示一部分,((firstVisibleItem + visibleItemCount) == totalItemCount) 的值也是等于totalItemCount。

但是加了距頂部的距離和整個listview的高度判斷后,就可以做到精確的判斷了。

以上這篇Android中判斷l(xiāng)istview是否滑動到頂部和底部的實(shí)現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

總結(jié)

以上是生活随笔為你收集整理的android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。