我有一个这样的类:
class MyController {
static PageController globalController = PageController(initialPage: 0);
void diispose() {
globalController.dispose();
}
}
我想在两个不同的位置使用这个PageController
来修改PageView
然而,使用MyController.globalController.jumpToPage(1);
后,我得到了这个错误:
ScrollController attached to multiple scroll views.
'package:flutter/src/widgets/scroll_controller.dart':
package:flutter/…/widgets/scroll_controller.dart:1
Failed assertion: line 108 pos 12: '_positions.length == 1'
我认为您不能为两个滚动视图使用相同的PageController,但您可以为每个滚动创建一个,并为所有滚动跳转到页面创建一个方法,如下面的示例:
class MyController {
static PageController globalControllerOne = PageController(initialPage: 0);
static PageController globalControllerTwo = PageController(initialPage: 0);
void jumpToPage(int page) {
globalControllerOne.jumpToPage(page);
globalControllerTwo.jumpToPage(page);
}
void dispose() {
globalController.dispose();
}
}