gpt4 book ai didi

android - ListView onScrollChanged 总是返回 0

转载 作者:行者123 更新时间:2023-11-29 17:48:17 26 4
gpt4 key购买 nike

我创建了一个扩展 ListView 的类,这样我就可以重写 onScrollChanged,这样我就可以判断列表是向上滚动还是向下滚动。然而每次它被调用时,所有的值都是 0。

对常规 ScrollView 执行此操作会返回我正在寻找的值,所以这与 ScrollView 的工作方式不同吗?

这是我的包装类

public class ImageScrollView extends ListView {

OnScrollChangedListener listener;

public interface OnScrollChangedListener{
public void onScrollChangedListener(int l, int t, int oldl, int oldt);
}

public ImageScrollView(Context context) {
super(context);
}

public ImageScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public void onScrollChanged(int l, int t, int oldl, int oldt){

if(listener != null){
listener.onScrollChangedListener(l,t,oldl,oldt);
}
}
}

最佳答案

对于 listviewonScrollChanged 总是返回所有值 0getScrollY() 等显然也是如此。根据您的需要,您必须实现 onScrollListener 接口(interface),该接口(interface)将通过 onScrollonScrollStateChanged 回调。这些函数都不会给你实际的滚动值,因为你必须计算它,

例如在

onScroll(AbsListView list ...)
{
View c = list.getChildAt(0);

if (c == null) {
return;
}

//assuming all list items have same height
int scrolly = -c.getTop() + list.getPaddingTop() + list.getFirstVisiblePosition() * c.getHeight();

// some code
}

请参阅以下帖子,我从中得到了最多的答案 Android getting exact scroll position in ListView

关于android - ListView onScrollChanged 总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24856063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com