flutter - 来自另一个类的 Flutter PageView PageController
问题描述
如何从另一个类调用 pageController?
我在主类中创建了一个 pageController,我想在每个 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),
],
);
}
}
推荐阅读
- c - 如何修复此程序中的二进制文件 a 和 b 不同的错误?
- vb.net - Crystal Report“已达到系统管理员配置的最大报表处理作业限制”
- python - Python将两个文件合并在一起
- java - 如何使用 rosjava 获取所有正在运行的 ros 节点的列表?
- java - 如何杀死在线程中运行的 Runnable?
- bash - 如何在 BASH shell 脚本中在终端中获取多个文件
- android - gradle build 时无法应用插件 [id 'com.chaquo.python']
- javascript - Anime.js 围绕具有不同起点的同一路径为多个对象设置动画
- amazon-web-services - AWS EC2 证书问题
- javascript - 在 Svelte 中,当在单选输入中使用“bind:group”时,未设置“checked”属性