我可以使用myScrollview.setPosition(y)
直接设置位置,或使用myScrollview.setVelocity(delta)
手动应用动作。但是,有没有办法将平滑,精确的缓和过渡应用到Scrollview的位置?谢谢!
答案 0 :(得分:1)
或者,您可以使用FlexScrollView,它使用物理弹簧将滚动位置平滑地拉到新位置。它还有一个用于设置滚动位置的扩展API:
https://github.com/IjzerenHein/famous-flex/blob/master/docs/FlexScrollView.md https://github.com/IjzerenHein/famous-flex/blob/master/docs/ScrollController.md https://github.com/IjzerenHein/famous-flex/blob/master/tutorials/FlexScrollView.md https://github.com/IjzerenHein/famous-flex
答案 1 :(得分:0)
这就是我所确定的(可能是更好的方法):
var self = this; // current view object
var transitionTime = 500; //ms
// How far do we need to move every 16.67 ms (1/60th of a second)?
self.animatedScrollDelta = (self.myScrollview.getPosition() / (transitionTime / 16.6667));
self.animatedScroller = Timer.every(animateScrollerCallback, 1);
function animateScrollerCallback()
{
var pos = self.myScrollview.getPosition() - self.animatedScrollDelta;
self.myScrollview.setPosition(Math.max(0, pos));
if(pos < 0)
Timer.clear(self.animatedScroller);
}
注意:这会线性动画,这就是我所需要的。我确定可以使用TweenTransition实现其他缓动公式。