同步滚动多个可滚动小部件

标签 scroll dart controller flutter synchronization

简单地说:

有没有办法让多个可滚动的小部件(例如,SingleSchildScrollView)同步在一起?


我只想要 2 个可滚动的,当我滚动一个时可以滚动另一个。

这样我可以使用 Stack 将它们叠放在一起,后面的可以跟随前面的滚动。

或者可能将它们放在另一组 ColumnRow 中,以便它们分开,但仍然可以通过滚动其中一个来滚动。

我尝试使用 controller 但它似乎并没有按照我的想法做。


试试下面的代码,例如, “RIGHT”将在“LEFT”前面,如果我尝试滚动它们,只有 RIGHT 会移动。那么如何将它们同时移动到一起呢??

请不要告诉我将堆栈放在 ListView 中,这不是我需要的。

class _MyHomePageState extends State<MyHomePage> {

  final ScrollController _mycontroller = new ScrollController();

  @override
  Widget build(BuildContext context) {
    body:
      Container(
        height: 100,
        child:
          Stack( children: <Widget>[
            SingleChildScrollView(
              controller: _mycontroller,
              child: Column( children: <Widget>[
                Text('LEFT            '),
                Text('LEFT            '),
                Text('LEFT            '),
                Text('LEFT            '),
                Text('LEFT            '),
                Text('LEFT            '),
              ],)
            ),
            SingleChildScrollView(
              controller: _mycontroller,
              child: Column(children: <Widget>[
                Text('          RIGHT'),
                Text('          RIGHT'),
                Text('          RIGHT'),
                Text('          RIGHT'),
                Text('          RIGHT'),
                Text('          RIGHT'),
              ],)
            ),
          ])
      )
}}

我相信之前已经在多个论坛中提出过这个问题,但根本没有人对此给出结论或解决方案。 (见 here)

最佳答案

我刚遇到同样的问题,现在有一个官方包:linked_scroll_controller .

使用那个包,你只需要创建一个master LinkedScrollControllerGroup跟踪滚动偏移,然后它将通过 LinkedScrollControllerGroup.addAndGet() 为您提供单独的 ScrollController(保持同步) .

关于同步滚动多个可滚动小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54859779/

相关文章:

Android - 如何在 Activity 中设置 Theme.Translucent.NoTitleBar 时提高 ListView 的性能?

jquery - 滚动时隐藏标题,内容位于其上方

scroll - Jetpack Compose - 修改滚动行为以将焦点保持在屏幕上的固定位置

session - CURL 和浏览器的服务器行为不同

flutter - 如何在 Dart 中打开枚举?

java - 强制父类(super class)包含无参构造函数

jquery - 滚动时如何更改菜单事件链接?

android - TabView 中的 Flutter ListView 构建器范围错误

ruby-on-rails - 我认为不是PostsController#new中的SyntaxError语法错误

javascript - 从函数内部更改 ngview