我正在尝试更改滚动速度并使其在此PageView项上平滑:
PageView.builder(
// store this controller in a State to save the carousel scroll position
controller: controller,
itemBuilder: (BuildContext context, int itemIndex) {
return _buildCarouselItem(context, carouselIndex, itemIndex);
},
physics: PageScrollPhysics(),
itemCount: Itmes.length,
onPageChanged: (int) {
OnNext(int);
},
)
没什么不同,但是,我必须说,可以在页面之间动态切换时进行速度更改,但这是默认选项。
EXPLANATION::使用页面视图时,您可以滚动页面,每个页面都可以播放动画。动画花费了一点时间,并且比我想要的要平滑得多。我的问题是,我可以加快动画速度并使它更清晰吗?
答案 0 :(得分:0)
尽管这是用于ListView的,但此代码可能会为您提供帮助。您可以通过这种方式更改速度...
class PageScrollPhysics extends ScrollPhysics {
@override
ScrollPhysics applyTo(ScrollPhysics ancestor) {
return PageScrollPhysics();
}
@override
Simulation createBallisticSimulation(
ScrollMetrics position, double velocity) {
return CustomSimulation(
initPosition: position.pixels,
velocity: velocity,
);
}
}
class CustomSimulation extends Simulation {
final double initPosition;
final double velocity;
CustomSimulation({this.initPosition, this.velocity});
@override
double x(double time) {
var max =
math.max(math.min(initPosition, 0.0), initPosition + velocity * time);
return max;
}
@override
double dx(double time) {
// print(velocity.toString());
return velocity;
}
@override
bool isDone(double time) {
return false;
}
}