【发布时间】:2020-03-19 18:31:43
【问题描述】:
我想在一个有状态的小部件中找出整个小部件何时出现在屏幕上或消失,类似于 iOS 的 onViewWillAppear / 消失。这有可能吗?我在 Flutter 文档中没有找到任何相关内容。
谢谢!
【问题讨论】:
我想在一个有状态的小部件中找出整个小部件何时出现在屏幕上或消失,类似于 iOS 的 onViewWillAppear / 消失。这有可能吗?我在 Flutter 文档中没有找到任何相关内容。
谢谢!
【问题讨论】:
您在flutter_widgets 包中寻找什么
将以下内容添加到您的pubspec.yaml
flutter_widgets: ^0.1.7+1
在这个包里面有一个叫做VisibilityDetector的小部件,它需要一个key、一个child和一个函数onVisibilityChanged
return VisibilityDetector(
key: Key("1"),
onVisibilityChanged: (visibility) {
//This will give you a range of values between 0 and 1,
//0 being not visible and 1 being fully visible.
print(visibility.visibleFraction)
}
child: Container(
width:double.infinity,
height: 300,
),
),
【讨论】:
如果您想在构建小部件后执行某些操作,您应该使用以下代码:
void initState() {
super.initState();
if (SchedulerBinding.instance.schedulerPhase ==
SchedulerPhase.persistentCallbacks) {
SchedulerBinding.instance.addPostFrameCallback((_) => onWidgetBuild());
}
/// appear
void onWidgetBuild() {
/// This block will be called onWidgetBuild
/// do your code here
}
/// disappear
@override
void dispose() {
super.dispose();
/// release whatever you have consume
}
希望对你有帮助。
【讨论】: