我已经创建了一个有状态小部件,它的父小部件需要调用一个位于子级状态的函数.
具体地说,我有一个创建VideoPlayer的类PlayerContainer,并且有一个VideoPlayerController的成员变量.当我按下Play按钮时,我的主类需要在州的VideoPlayerController上调用play(),所以我在State类中创建了一个函数,但是我不知道如何从父小部件访问该函数.
这有可能吗?或者我说的全错了?
我已经创建了一个有状态小部件,它的父小部件需要调用一个位于子级状态的函数.
具体地说,我有一个创建VideoPlayer的类PlayerContainer,并且有一个VideoPlayerController的成员变量.当我按下Play按钮时,我的主类需要在州的VideoPlayerController上调用play(),所以我在State类中创建了一个函数,但是我不知道如何从父小部件访问该函数.
这有可能吗?或者我说的全错了?
使用一个简单的应用程序,您只需在与VideoPlayer相同的小部件中创建播放按钮即可.通过将PlayerContainer与其父组件相结合,您可以增加Widget State范围的大小,以便需要访问它的所有内容都是单个较大的Widget的一部分.
子Widget受祖先影响的主要方式有:使用不同的参数重新构建,或者听取祖先更改的内容.对于后者,您可以在子元素的某个位置使用InheritedWidget.如果子级引用InheritedWidget,则当IW更改时会重新构建它.另一种方法是侦听由祖先生成的事件流.
你可能会发现,在一次构建中构建整个页面是最容易的,直到这变得难以操作为止.