展会信息港展会大全

android 从源码分析为什么Listview初次显示时没滚动却自动调用onScroll方法的原因
来源:互联网   发布日期:2015-11-26 11:35:10   浏览:2518次  

导读:我们做Listview的分批加载时,需要为Listview调用setOnScrollListener(具体代码可见我上一篇博客)可是,我们会发现,当运行程序时,listview明明没有滚动...

我们做Listview的分批加载时,需要为Listview调用setOnScrollListener(具体代码可见我上一篇博客)

可是,我们会发现,当运行程序时,listview明明没有滚动,那为什么系统会调用onScroll方法呢?(补充:此时onScrollStateChanged并不会调用)

我们先看setOnScrollListener源码:

public void setOnScrollListener(OnScrollListener l) {

mOnScrollListener = l;

invokeOnItemScrollListener();

}setOnScrollListener里面调用了invokeOnItemScrollListener()方法,接着看该方法源码:voidinvokeOnItemScrollListener() {

if (mFastScroller != null) {

mFastScroller.onScroll(mFirstPosition, getChildCount(), mItemCount);

}

if (mOnScrollListener != null) {

mOnScrollListener.onScroll(this, mFirstPosition, getChildCount(), mItemCount);//这里调用onScroll,一切真相大白了。

}

onScrollChanged(0, 0, 0, 0); // dummy values, View's implementation does not use these.

}

赞助本站

人工智能实验室

相关热词: android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港