dart - Flutter-如何控制ListView构建器的速度?

标签 dart flutter

我有一个ListView.builder,我想在ListView中控制滚动的速度,但是除了扩展Simulation,然后覆盖速度,然后扩展ScrollingPhysics类并提供速度之外,我没有找到解决方案从那里。但是我不知道该怎么做。

您还有其他解决方案或示例吗?

最佳答案

如果您需要类似android的滚动行为,请查看ClampingScrollSimulation的构造函数参数friction。对于ScrollPhysics,它是滚动减速度的系数。摩擦力越大,滚动 View 越早停止滚动。
您可以在自定义滚动物理类中控制摩擦:

class CustomScrollPhysics extends ScrollPhysics {
  const ChartScrollPhysics({ScrollPhysics parent}) : super(parent: parent);

  @override
  CustomScrollPhysics applyTo(ScrollPhysics ancestor) {
    return CustomScrollPhysics(parent: buildParent(ancestor));
  }

  ...

  @override
  Simulation createBallisticSimulation(
      ScrollMetrics position, double velocity) {
    final tolerance = this.tolerance;
    if ((velocity.abs() < tolerance.velocity) ||
        (velocity > 0.0 && position.pixels >= position.maxScrollExtent) ||
        (velocity < 0.0 && position.pixels <= position.minScrollExtent)) {
      return null;
    }
    return ClampingScrollSimulation(
      position: position.pixels,
      velocity: velocity,
      friction: 0.5,    // <--- HERE
      tolerance: tolerance,
    );
  }
}

并将其用于ScrollView子类小部件:
ListView.builder(
  physics: CustomScrollPhysics(), 
  itemBuilder: (context, index) {
    ...
}) 

关于dart - Flutter-如何控制ListView构建器的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51261935/

相关文章:

flutter - 为什么我们应该在flutter中使用option?

flutter - 在 Text() 上出错 - 必须向 Text 小部件提供非空字符串

checkbox - 如何在 Flutter 中为 Checkbox 添加标签(标题文本)?

flutter - 根据api更改状态列表项的动画

firebase - 如何从Flutter到本地云功能服务器进行HTTP POST

dart - 有人让 Dart dev_compiler 工作吗?

flutter - facebookLogin.logInWithReadPermissions是否无法识别为FacebookLogin()中的方法?

dart - Flutter 中的首字下沉字母

Dart int 和 double 被拘留?被相同()特殊对待?

dart - 如何在Redstone中将HTTP请求重定向到https?