首页 > 解决方案 > Flutter:有没有办法在用户滚动另一个 pageView 时以编程方式滚动 pageView?

问题描述

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

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

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

在此处输入图像描述在此处输入图像描述

标签: flutterflutter-pageview

解决方案


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


推荐阅读