我正在开发一款Flutter 翼应用程序,需要弹出屏幕.我试了initState()种方法,但没有成功.当我第一次开课时,initState()会被调用.

我们有没有类似于Android onResume()的Flutter 方法?

有什么主意吗?

推荐答案

您可以使用WidgetsBindingObserver并判断AppLifeCycleState,如下例所示:

class YourWidgetState extends State<YourWidget> with WidgetsBindingObserver {

  @override
  void initState() {
    WidgetsBinding.instance?.addObserver(this);
    super.initState();
  }

 
  @override
  void dispose() {
    WidgetsBinding.instance?.removeObserver(this);
    super.dispose();
  }
  

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    if (state == AppLifecycleState.resumed) {
       //do your stuff
    }
  }
}

请记住,每当你打开应用程序或转到后台并返回应用程序时,它都会调用.(如果您的小工具处于活动状态)

如果第一次加载小部件时只需要一个侦听器,可以使用addPostFrameCallback进行侦听,如以下示例:

class YourWidgetState extends State<YourWidget> {

  _onLayoutDone(_) {
    //do your stuff
  }

  @override
  void initState() {
    WidgetsBinding.instance?.addPostFrameCallback(_onLayoutDone);
    super.initState();
  } 

}

信息:https://docs.flutter.io/flutter/widgets/WidgetsBindingObserver-class.html

更新:安全合规性为空

Flutter相关问答推荐

为什么Riverpod生成器在这种情况下不生成AsyncNotiator?

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

如何知道当前屏幕是否处于抖动状态?

将图标呈现在Flutter 克牌小工具的角落上

如何实现Flutter 梳理机图像的小量移动

如何让经过Firebase身份验证的用户能够将Zip文件上载到Firebase云存储?

dart /长笛中的返回早期模式和拆分方法

我如何在Android 13中通过Flutter应用程序打开文件(不是图像、视频或音频)?

找不到任何与 com.google.firebase:firebase-sessions:[15.0.0, 16.0.0) 匹配的版本

Flutter记录返回类型问题

模块是使用不兼容的 kotlin 版本编译的.其元数据的二进制版本是1.8.0,预期版本是1.6

在 Flutter 中,SpinEdit 叫什么?

Flutter可滚动定位列表支持rtl方向吗?

Flutter sliver 持久化

如何验证非表单字段?

使用 onPressed 切换到另一个屏幕无法正常工作

我可以使用 Future 来填充Text() 小部件而不是在 Flutter 中使用 FutureBuilder 吗?

Flutter:整个判断整个应用生命周期的通用类

Flutter - 检测手指何时进入容器

如何在Flutter 中水平滚动堆叠定位的小部件?