Flutter Messaging App - 禁用图标按钮

标签 flutter dart iconbutton

我有一个消息传递应用程序,您可以在其中从用户列表中选择要与之交谈的用户。应用栏上有一个图标按钮,您可以在其中确认要发送消息的用户组。现在,用户可以多次向图标按钮发送垃圾邮件。我想在按下一次后禁用图标按钮。我有一个 bool iconEnabled 变量,但我不确定将它放在 onPressed 中的什么位置。

return Scaffold(
      appBar: AppBar(
        title: Text("Users"),
        actions: <Widget>[
          new IconButton(
            icon: new Icon(Icons.check),
            onPressed: widget.isNew
                ? () async {
                    if (newUsers.length == 0) {
                      return;
                    }
                    widget.thread.users.addAll(newUsers);
                    widget.thread.userIds.addAll(widget.thread.users.map((user) => user.id).toList());
                    widget.thread.users = widget.thread.users;
                    // Call New Thread
                    var threadId = await Client.addThread(widget.thread);
                    widget.thread.id = threadId;
                    Navigator.pushReplacement(
                      context,
                      MaterialPageRoute(
                        settings: RouteSettings(name: "MessagePage"),
                        builder: (context) => MessagePage(
                          thread: widget.thread,
                        ),
                      ),
                    );
                  }
                : () {
                    if (newUsers.length == 0) {
                      return;
                    }
                    widget.thread.users.addAll(newUsers);
                    widget.thread.userIds.addAll(widget.thread.users.map((user) => user.id).toList());
                    widget.thread.users = widget.thread.users;
                    // Call users patch
                    Client.addUsers(widget.thread);
                    Navigator.pop(context);
                  },
          ),
        ],
      ),

最佳答案

如果您已经完成了何时启用/禁用按钮的逻辑,那么您已经完成了 99%。

如果 onPressed 传递 null,按钮将被禁用。因此,您可以在 IconButton 的创建过程中稍作更改:

onPressed: !iconEnabled ? null : (widget.isNew // ... and put the closing parentheses after the onPressed callbacks

关于Flutter Messaging App - 禁用图标按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57330503/

相关文章:

flutter - 按下后如何更改IconButton的图标

android - 如何从 Android Activity 导航到特定的 flutter 路由?

flutter - 如何从 flutter web 的 HtmlElementView 执行 iframe 功能

dart - Dart VM本身在 `eval`中实现 `dart:mirrors`,开发人员可以使用它。是否计划公开此方法?

dart - 在 Flutter 中获取 BuildContext 以进行本地化

firebase - flutter 和 Firebase : type 'Query' is not a subtype of type 'CollectionReference'

flutter - 使用 page_transition 更改 Navigator.pop() 动画持续时间

Flutter:未添加到 Flutter SDK 中的包

reactjs - Material UI - 自定义 IconButton,带有像真实 Button 一样的变体 Prop

flutter - onPressed 图标没有改变