flutter - Flutter:有没有办法在用户滚动另一个 pageView 时以编程方式滚动 pageView?
问题描述
我在一个屏幕上有两个 PageViews(具有不同的 viewportFraction),我需要实现下一个行为:当用户滚动 PageView 2、PageView 1 时,也需要使用 PageView 2 滚动。(就像 iOS 15 中的 safari 选项卡)
我将非常感谢有关如何实现此行为的任何提示,也许我可以为此使用其他一些小部件?
UPD:我曾尝试使用 jumpTo,但出现故障。如果我只将 PageView 2 滚动到页面的一半,PageView 2 会自动滚动到下一页
解决方案
据我了解,您可能应该在 PageViews 中添加控制器,然后收听 PageView2 控制器
像这样:
const Duration _duration = Duration(milliseconds: 100);
final PageController _controller1 = PageController();
final PageController _controller2 = PageController();
_controller2.addListener(() {
setState(() {
_controller1.animateTo(_controller2.offset, duration: _duration, curve: Curves.ease);
});
});
PS:如果你的两个PageView的页数和宽度一样
推荐阅读
- hbase - 无法连接到 bigtable 实例
- php - Ubuntu server 20.4 nginx 在任何 php 页面上总是返回 404,html 完美运行
- amazon-cognito - 使用外部身份提供商静默登录 AWS Cognito
- c++ - QTextEdit 中的视觉错误
- php - 更改 WordPress 后端布局(删除某些选项卡)
- python - 使用字符串格式的 DataFrame 索引作为类的实例
- r - 如何从列中创建二进制虚拟变量?
- c# - 聊天机器人从后面的代码更新任务模块
- vue.js - vuejs编辑表单模态不断更新父
- arrays - (如何)可以在 Swift 中交换两个大小和类型相同的整个数组吗?