我遇到了一个问题,希望有人可以帮助我。我正在显示一个带有滚动和捏缩放的多页文档。滚动效果很好,但是当缩放时,我会在文档的下方走得越来越紧张,比如第25页左右。
该文档由ViewGroup(DocView)表示,该视图包含表示页面的100个自定义视图(DocPageView)的数组。 DocView测量页面并将其垂直放置在一列中。 GestureDetector用于监视滚动,而ScaleGestureDetector用于缩放。在onScale()中,我计算一个新的比例因子,调整滚动位置,并调用requestLayout()。在onLayout()中,我计算孩子们的位置并将其排出。作为优化,我添加/删除不可见的子项。
DocPageView非常小,它只是用页码来绘制。
缩放时,我正在调整滚动位置,以便将捏合的焦点保持在大致相同的位置。当getScrollY()是一个小数字时,事情顺利进行。但是,当我向下滚动到第25页然后缩放时,会发生一种紧张感。
我认为总的来说更容易看到这一点,而不是在这里发布片段。所以这就是整个事情。
[http://www.ross-perry.com/StackOverflow/ScalingTest.zip]
如果您有想法,或者之前已经看过这种事,请告诉我。 谢谢。
答案 0 :(得分:0)
很抱歉打扰了所有人。事实证明,对于每个新的比例值,我重新计算onLayout中页面的新位置。结果我有一个整数算术错误,随着页码的增加而累积。我已经淘汰了,现在一切都很好。