android - 为啥在 Horizo​​ntalPager.OnScrollListener() 接口中多次调用 onViewScrollFinished

Posted

技术标签:

【中文标题】android - 为啥在 Horizo​​ntalPager.OnScrollListener() 接口中多次调用 onViewScrollFinished【英文标题】:android - Why onViewScrollFinished is called multiple times in HorizontalPager.OnScrollListener() interfaceandroid - 为什么在 Horizo​​ntalPager.OnScrollListener() 接口中多次调用 onViewScrollFinished 【发布时间】:2014-03-18 07:58:53 【问题描述】:

为了管理水平寻呼机,我目前正在使用来自here的源代码 我注意到,当我从一页滑到另一页时,方法 onViewScrollFinished() 最多被调用 5 次而不是 1 次。虽然我已经管理了这个多次调用,但我需要知道是否有任何滴答声来处理这个问题。

这是我管理onViewScrollFinished()的源代码

public void onViewScrollFinished(int currentPage)   

            count++;
            if( (previousPage != currentPage))
                Toast.makeText(MainActivity.this, ""+(currentPage+count), Toast.LENGTH_SHORT).show(); 
            

            previousPage = currentPage;


PreviousPage 设置为 -1;

【问题讨论】:

【参考方案1】:

我不知道为什么会多次调用它,但是您正在做的事情完全没问题。在这种情况下,我经常发现自己在做这样的事情:

private int currentPage = Integer.MIN_VALUE;

@Override
public void onViewScrollFinished(int currentPage) 

    if( (this.currentPage != currentPage))
        this.currentPage = currentPage;
        onPageChanged(currentPage);
    



protected void onPageChanged(int currentPage) 
    // Executed only when the page really changes    

【讨论】:

感谢 Xaver Kapeller。

以上是关于android - 为啥在 Horizo​​ntalPager.OnScrollListener() 接口中多次调用 onViewScrollFinished的主要内容,如果未能解决你的问题,请参考以下文章

包装在 Horizo​​ntalScrollView 中的 Android Listview 高度不正确,其中列表项的高度不同

FragmentTabHost Horizo​​ntal Scrollview + Swipe Android

Android:Horizo​​ntalScrollView smoothScroll 动画时间

Android studio自动horizo​​ntalscrollview无限滚动直到结束然后重复

Android Leanback 库 Horizo​​ntalGridView scrollToPosition 不起作用

Horizo​​ntalScrollView 中的自定义视图不滚动