【问题标题】:Flutter: Is there way to scroll pageView programmatically while user scroll another pageView?Flutter:有没有办法在用户滚动另一个 pageView 时以编程方式滚动 pageView?
【发布时间】:2021-12-15 03:25:21
【问题描述】:

我在一个屏幕上有两个 PageViews(具有不同的 viewportFraction),我需要实现下一个行为:当用户滚动 PageView 2 时,PageView 1 也需要使用 PageView 2 滚动。(就像 iOS 15 中的 safari 选项卡一样)

我将非常感谢有关如何实现此行为的任何提示,也许我可以为此使用一些其他小部件?

UPD:我曾尝试使用 jumpTo,但它出现了故障。如果我只将 PageView 2 滚动到页面的一半,PageView 2 会自动滚动到下一页

【问题讨论】:

  • 你需要为另一个页面视图设置一个PageController并使用它的jumpTo方法
  • 我试过了,但是当我滚动时,它会出现故障,因为 1 PageView 会自动滚动到某个页面位置。换句话说:如果我滚动半页,1 PageView 会自动滚动到下一页
  • 然后发布您的代码

标签: flutter flutter-pageview


【解决方案1】:

据我了解,您可能应该在 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的页数和宽度一样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多