【问题标题】:OnScroll doesn't return expected output in androidOnScroll 不会在 android 中返回预期的输出
【发布时间】:2014-06-12 06:12:46
【问题描述】:

我在包含 26 个项目的 listView 中添加了一个 OnScrollListener。

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
        if(mCurrentPosition == firstVisibleItem){
        return;
    }
    System.out.println(firstVisibleItem);
}

当我快速(更快)滚动列表时,onScroll 不会调用每个项目。但是当我正常滚动时,它工作正常。

异常输出:

System.out(30562): 0
System.out(30562): 1
System.out(30562): 2
System.out(30562): 5
System.out(30562): 8
System.out(30562): 11
System.out(30562): 14
System.out(30562): 18
System.out(30562): 20
System.out(30562): 23
System.out(30562): 26

【问题讨论】:

    标签: android listview


    【解决方案1】:

    是的,预计会发生。根据文档onScroll 是:

    滚动列表或网格时调用的回调方法。这将在滚动完成后调用

    所以只有在滚动完成后才会调用它,因此当您缓慢滚动时,所有项目都会被调用,但当您快速滚动时,只会调用滚动完成后当前可见的那些项目。

    【讨论】:

    • 有什么方法可以在 firstVisibleItem 更改时获得回调。我正在尝试实现一个粘性标题列表视图。我需要知道回调来更新最顶层的标题。
    • @shantanu 每当您滚动列表视图以及您的 firstVisibleItem 更改时都会触发此事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    相关资源
    最近更新 更多