首页 > 解决方案 > 来自另一个类的 Flutter PageView PageController

问题描述

如何从另一个类调用 pageController?

我在主类中创建了一个 pageController,我想在每个 PageView 子项(来自另一个类的小部件)中使用它。

谢谢你。

标签: flutterflutter-pageview

解决方案


你可以做这样的事情

class SomeChild extends StatelessWidget {
  final PageController controller;

  const SomeChild({Key key, this.controller}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialButton(
      onPressed: () => controller.animateToPage(1, duration: Duration(seconds: 1), curve: Curves.linear),
    );
  }
}

然后只需将此类声明为页面视图的子级即可。材料按钮在那里,您可以看到如何访问控制器。然后在具有页面浏览量的类中,您可以简单地将控制器作为参数传入,如下所示:

class SomeClass extends StatelessWidget {
  final PageController controller = PageController();

  @override
  Widget build(BuildContext context) {
    return PageView(
      controller: controller,
      children: [
        SomeChild(controller: controller),
        SomeChild(controller: controller),
        SomeChild(controller: controller),
      ],
    );
  }
}

推荐阅读