【问题标题】:Flutter Floating Action Button with Dynamic Status具有动态状态的 Flutter 浮动操作按钮
【发布时间】:2025-12-30 18:30:11
【问题描述】:

完成我的第一个 Flutter 移动应用程序的最后润色。 另一个重要的待办事项:我的浮动操作按钮出现在每个页面的顶部应用程序栏中,但我希望根据当前页面更改其状态(启用/禁用)。这可能吗?如果是这样,任何适合新手的教程、资源、参考资料和/或代码示例将不胜感激。 谢谢!

【问题讨论】:

    标签: flutter dart floating-action-button appbar flutter-appbar


    【解决方案1】:

    酷,你可以使用Visibility

    floatingActionButton: Visibility(
      child: FloatingActionButton(...),
      visible: false, // set it to false
    )
    

    或者,您可以使用 NotificationListener(更优雅但更复杂)。

    请查看this example from another publication


    编辑:可能直接在 onPressed 中控制它。 根据official docs

    “如果 onPressed 回调为 null,则按钮将被禁用,默认情况下将类似于 disabledColor 中的平面按钮。”

    FloatingActionButton(
          onPressed: shouldButtonBeDisabled() ? null : () => whatToDoOnPressed,
          child: Text('blablabla')
        );
    

    【讨论】:

    • 感谢您的建议! ..我肯定有一天会使用这个。但不是这个项目,我不认为;因为我希望按钮保持可见,只是不活动。尽管您的建议提醒我视觉提示对 UI 很重要;如果我的按钮仍然可见并且看起来相同,则它可能会在禁用页面上被误解为“损坏”。所以我认为颜色和/或不透明度的变化也是我的解决方案需要的,因为它会保持可见。谢谢
    • Edit 添加了一项新建议。看看它是否有意义。
    • 这可能行得通。我的意思是,对于一个有经验的程序员来说,可能是肯定的。我可以把它拉下来吗?...这完全是另一个问题,哈哈。但它似乎很简单,只有 3 行.. 这是一个加号;我会尽快尝试一下。敬请期待。谢谢!