我遇到了一个问题,希望有人能帮助我。我使用滚动和缩放来显示多页文档。滚动工作正常,但是在缩放时,我会在你去的文档的更远处发生紧张的行为,比如说第25页左右。在VewGroup中放大抖动
该文档由一个ViewGroup(DocView)表示,该ViewGroup包含一个包含100个代表页面的自定义视图(DocPageView)的数组。 DocView测量页面并将其垂直排列在单个列中。一个GestureDetector用于监视滚动,一个ScaleGestureDetector用于缩放。在onScale()中,我计算一个新的比例因子,调整滚动位置并调用requestLayout()。在onLayout()中,我计算孩子的位置并将它们排列出来。作为优化,我添加/删除不可见的子项。
DocPageView是非常小的,它只是用一个页码自己绘制。
缩放时,我正在调整滚动位置,以便将夹点的焦点保持在大致相同的位置。当getScrollY()是一个很小的数字时,事情就会顺利进行。但是当我向下滚动到第25页然后缩放时,就会发生紧张情绪。
我认为总体上看起来更容易,而不是在这里发布片段。所以这是整个事情。
[http://www.ross-perry.com/StackOverflow/ScalingTest.zip]
请让我知道你是否有想法或曾看过这类事情。 谢谢。
看起来像你正在做所有页面1-25一些工作,这是在16ms(帧之间的时间)完成太多。 – Henry
谢谢亨利。我试图限制onScale不超过25毫秒,并且它仍然在发生。也试过50毫秒。 –