简单地说:
有没有办法让多个可滚动的小部件(例如,SingleSchildScrollView
)同步在一起?
我只想要 2 个可滚动的,当我滚动一个时可以滚动另一个。
这样我可以使用 Stack
将它们叠放在一起,后面的可以跟随前面的滚动。
或者可能将它们放在另一组 Column
或 Row
中,以便它们分开,但仍然可以通过滚动其中一个来滚动。
我尝试使用 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/