我已经创建了一个有状态小部件,它的父小部件需要调用一个位于子级状态的函数.

具体地说,我有一个创建VideoPlayer的类PlayerContainer,并且有一个VideoPlayerController的成员变量.当我按下Play按钮时,我的主类需要在州的VideoPlayerController上调用play(),所以我在State类中创建了一个函数,但是我不知道如何从父小部件访问该函数.

这有可能吗?或者我说的全错了?

推荐答案

使用一个简单的应用程序,您只需在与VideoPlayer相同的小部件中创建播放按钮即可.通过将PlayerContainer与其父组件相结合,您可以增加Widget State范围的大小,以便需要访问它的所有内容都是单个较大的Widget的一部分.

子Widget受祖先影响的主要方式有:使用不同的参数重新构建,或者听取祖先更改的内容.对于后者,您可以在子元素的某个位置使用InheritedWidget.如果子级引用InheritedWidget,则当IW更改时会重新构建它.另一种方法是侦听由祖先生成的事件流.

你可能会发现,在一次构建中构建整个页面是最容易的,直到这变得难以操作为止.

Flutter相关问答推荐

为什么Flutter 翼扩展卡有上下边框?

从超级应用程序启动时,Flutter 小应用程序中未加载资源

为什么我的页面控制器在使用Riverpod时没有更改我的页面视图?

FOR回路中的Flutter 模型

在使用FutureProvider时,我想显示用于加载的指示器,但无法自定义大小

Flutter 中的 setState() 内部是如何工作的?

没有固定宽度的小部件可以约束文本小部件吗?

Select 文本时如何更改 Flutter 中的光标 colored颜色 ?

Flutter 中的区域不匹配

仅在获取(读取)、Provider 时,Firestore 中的数据为空

在允许屏幕 Select 和点击的同时保持通用对话框显示

Flutter底部面板局部显示

我想在文本结束后显示分隔线.它会在第一行、第二行或第三行结束

切换 Firebase 项目后 Flutter FirebaseAuthException 'configuration-not-found'

从子集合sem中获取参考学年&&课程名称的值

如何从底部导航栏打开 bottomModal 表?

Flutter 如何使用 ClipPath 编辑容器的顶部?

如何在没有上下文的情况下使用国际Flutter ?

Flutter Bloc Todo 示例 - 收听存储库中的单个 todo

如何在 ElevatedButton 上设置背景 colored颜色 动画?