sha*_*ais 6 flutter flutter-layout
我正在尝试创建一个桌面样式的滚动条,它根据内容的大小更改其大小。我的滚动条与列表共享 ScrollController,并依赖position.maxExtents 来了解内容区域有多大。
问题是,当我更改行数时,maxExtents 将不会更新,直到启动滚动事件。
我用这样的代码解决了这个问题,在 100 毫秒内向上移动 1px,向下移动 1px:
widget.controller.jumpTo(controller.position.pixels + 1);
Future.microtask(() => widget.controller.animateTo(controller.position.pixels - 1, duration: 100.milliseconds, curve: Curves.linear));
Run Code Online (Sandbox Code Playgroud)
当列表可以滚动时,它的效果非常好。但是,当列表 < 视图的高度时,它无法滚动,并且这些调用没有效果,并且我陷入了陈旧的 maxExtents 困境。
我怎样才能告诉列表:“嘿,列表,重新计算你的孩子!”?
小智 2
您可以使用以下命令将代码延迟到控制器更新后。
WidgetsBinding.instance.addPostFrameCallback((_) {
...your code which requires controller's max extents...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |