android - onScroll()问题(执行了3次)

标签 android listview onscroll

在此代码 fragment 中,当滚动到列表末尾时,方法 Log.d() 执行了 3 次。为什么会发生这种情况以及如何检测列表末尾以仅执行一次方法?

fragment :

public void onScroll(AbsListView view, int firstVisibleItem,
        int visibleItemCount, int totalItemCount) {
    if (getIntent().getBooleanExtra("isFavorites", false) == false) {
        try {
            if (visibleItemCount > 0 && firstVisibleItem + visibleItemCount == totalItemCount) {
                Log.d(TAG, "Adding to list");

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

最佳答案

您可以实现一个 boolean 变量来确保 if 语句仅执行一次。

boolean executed = false;

if(visibleItemCount > 0 
    && firstVisibleItem + visibleItemCount == totalItemCount 
    && !executed)
{
    executed = true;
}

关于android - onScroll()问题(执行了3次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740211/

相关文章:

java - Ice Cream Sandwich 无法识别 HTML 中的换行符

android - 库使用了错误的 R 文件

java - 如何跳过唯一的用户 ID 并访问回收者 View 的子值

android - 为什么 AppBar 会在我的应用栏背景中添加方 block

android - 使第一个 ListView 项目出现在不同的布局中

c# - 无法将 Xaml 中的 SelectedIndex ="0"设置为 ListView(Windows 应用商店应用程序)

android - 如何使自定义 ListView 像附加图像一样

android - AndEngine - 上下滚动 Sprite