书接上文,来到了目录第二层,为了能更加直观酷炫地展示课程目录,使用了 carousel_slider 插件,但光使用此插件依然感觉单调,所以想实现一个滑动过程中背景跟着漫游的功能(ps:不知此说法是否严谨),如下所示
image
都怪笔者比较愚笨,思路不对,记录思路以示自己:
1.一想可以动态设置 image 的 alignment,结果是没有动画效果,而是卡顿着变动
2.二想这是动画效果,是不是应该使用 AnimatedContainer ,盘了一天没盘出来
3.三想这个动作不就是滑动图片吗,茅塞顿开 赶紧使用 GestureDetector,无奈怎么播弄, onHorizontalDragUpdate 函数一直无法跑进去,茅只能再度塞
4.四想 使用相对底层的 Listener ,虽然 onPointerMove 可以跑进去,无奈本人才疏学浅,拿不出一个 size 转 Alignment 而且让他们平滑运动的方程,最终放弃
5.最终章五想,原来 插件 carousel_slider 中有个属性 onScrolled 🙄,此时除了想给自己面门来几下之外,依然没忘码码


1.写 onScrolled 调用的函数

void callbackFunction(double covariant) {
 double step = covariant / this.courseList.length;
  setState(() {
 this.alignment =
        Alignment.lerp(Alignment.centerLeft, Alignment.centerRight, step);
  });
}

2.onScrolled调用

CarouselSlider(
 options: CarouselOptions(
 autoPlay: false,
      enlargeCenterPage: true,
      enableInfiniteScroll: false,
      viewportFraction: 0.61,
      initialPage: 0,
      onScrolled: callbackFunction,
      height: double.infinity),
  items: courseList.map((item) {
 return this.courseItem(item);
  }).toList(),
)

🌹Ontario Gothic🐾
1 声望0 粉丝

🌹Ontario Gothic🐾