【问题标题】:How to find out in Flutter when a Widget appears / disappears?如何在 Flutter 中找出 Widget 出现/消失的时间?
【发布时间】:2020-03-19 18:31:43
【问题描述】:

我想在一个有状态的小部件中找出整个小部件何时出现在屏幕上或消失,类似于 iOS 的 onViewWillAppear / 消失。这有可能吗?我在 Flutter 文档中没有找到任何相关内容。

谢谢!

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您在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,
       ),
    ),
    

    【讨论】:

      【解决方案2】:

      如果您想在构建小部件后执行某些操作,您应该使用以下代码:

      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
      }
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2021-10-06
        • 2021-09-08
        • 2019-07-15
        • 1970-01-01
        • 2022-12-18
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多