【问题标题】:scrollView.getScrollY() always returns 0 after a fragment changescrollView.getScrollY() 在片段更改后总是返回 0
【发布时间】:2015-08-22 06:49:19
【问题描述】:

我必须检测滚动视图的滚动。

在第一次发布时一切正常。 但是当我更改片段,然后返回上一个片段时,会调用侦听器,但 scrollView.getScrollY() 始终返回 0。 滚动视图有很多项目,而且比页面长。

scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() 
    {
        @Override
        public void onScrollChanged()           
        {               
            int new_scrollY = scrollView.getScrollY();  
            if(new_scrollY == 0)        // First call when page is created  
                return;

            ....
        }
    }

上面的代码放在onViewCreated方法中。

谢谢

【问题讨论】:

  • 这种行为可能是由 Fragments 引起的。您是否制作了仅在活动中产生此行为的原型?即制作一个包含 2 个活动的示例项目并实施此 ScrollView .. 如果问题没有持续存在.. 那么你的罪魁祸首就是 Fragment。
  • 我想碎片是问题所在。有什么想法吗?
  • 您是否尝试过以上使用活动?过去 1 年我一直在研究 Fragments。但首先让我们 100% 确定 Fragments 是否确实是问题所在。

标签: android scrollview listener


【解决方案1】:

解决了。

每次更改片段时,我都必须删除 OnScrollChangedListener。 例如在 onPause() 中。

【讨论】:

  • 所以你正在调用 removeOnScrollListener(onScrollChangeListener);在 onPause(); ??
猜你喜欢
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 2015-09-27
  • 2014-03-20
  • 2013-04-13
  • 2013-03-30
  • 2016-07-13
  • 2023-04-09
相关资源
最近更新 更多