Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:带ON按下选项的蛇形杆_Flutter_Dart - Fatal编程技术网

Flutter 颤振:带ON按下选项的蛇形杆

Flutter 颤振:带ON按下选项的蛇形杆,flutter,dart,Flutter,Dart,我正在使用Snackbar的以下代码 void _showSnackBar(BuildContext context, String message, Color color) { final snackBar = SnackBar( duration: Duration(seconds: 3), backgroundColor: color, content: Text(message), ); _scaffoldKey.curren

我正在使用Snackbar的以下代码

void _showSnackBar(BuildContext context, String message, Color color) {
    final snackBar = SnackBar(
      duration: Duration(seconds: 3),
      backgroundColor: color,
      content: Text(message),
    );
    _scaffoldKey.currentState.showSnackBar(snackBar);
  }
这就是我在需要的地方如何称呼它

_showSnackBar(context,'Account created Successfully.',Colors.green);
它运转良好,完全正常。我看不出有什么问题

但现在我需要在Snackbar中添加Onclick选项。 就像下面的代码

action: SnackBarAction(
              label: 'Undo',
              onPressed: () {
                // Some code to undo the change.
              },
            ),
我不知道如何添加它以及在哪里添加它

请建议

编辑: 再多解释一下我想要实现的目标

void _showSnackBar(BuildContext context, String message, Color color) {

如何传递OnPressed事件的参数?这就是我遇到的问题。

我认为这可以通过以下方式实现:

SnackBar(
  content: Text('Yay! A SnackBar!'),
  action: SnackBarAction(
    label: 'Undo',
    onPressed: () {
      // Some code to undo the change.
    },
  ),
)

我认为这可以通过以下方式实现:

SnackBar(
  content: Text('Yay! A SnackBar!'),
  action: SnackBarAction(
    label: 'Undo',
    onPressed: () {
      // Some code to undo the change.
    },
  ),
)

这可以通过以下代码实现:

    void _showSnackBar(BuildContext context, String message, Color color) {
        final snackBar = SnackBar(
          duration: Duration(seconds: 3),
          backgroundColor: color,
          content: Text(message),
          action: SnackBarAction(
              label: 'Undo',
              onPressed: (){}
          )
        );
        _scaffoldKey.currentState.showSnackBar(snackBar);
      }

您可以在SnackBar的此处找到更多信息:

这可以通过以下代码实现:

    void _showSnackBar(BuildContext context, String message, Color color) {
        final snackBar = SnackBar(
          duration: Duration(seconds: 3),
          backgroundColor: color,
          content: Text(message),
          action: SnackBarAction(
              label: 'Undo',
              onPressed: (){}
          )
        );
        _scaffoldKey.currentState.showSnackBar(snackBar);
      }

您可以在此处找到有关SnackBar的更多信息:

您可以将任何需要的参数传递给自定义的
\u showSnackBar
方法,在该方法中,您可以使用这些参数执行任何操作

在我看来:

    void _showSnackBar(BuildContext context, String message, Color color) {
            final snackBar = SnackBar(
              duration: Duration(seconds: 3),
              backgroundColor: color,
              content: Text(message),
              action: SnackBarAction(
                  label: 'Undo',
                  onPressed: (){
                    print(color);
   /// do what you want with passed color or message
                   }
              )
            );
            _scaffoldKey.currentState.showSnackBar(snackBar);
          }

您可以将任何需要的参数传递给自定义的
\u showSnackBar
方法,在该方法中,您可以使用这些参数执行任何操作

在我看来:

    void _showSnackBar(BuildContext context, String message, Color color) {
            final snackBar = SnackBar(
              duration: Duration(seconds: 3),
              backgroundColor: color,
              content: Text(message),
              action: SnackBarAction(
                  label: 'Undo',
                  onPressed: (){
                    print(color);
   /// do what you want with passed color or message
                   }
              )
            );
            _scaffoldKey.currentState.showSnackBar(snackBar);
          }

谢谢你的否决票。我不知道为什么它会被否决。我想我已经提供了细节。就像我所做的和预期的一样,不要求完整的解决方案。谢谢你的否决票。我不知道为什么它会被否决。我想我已经提供了细节。就像我所做的和预期的一样,不要问完整的解决方案。谢谢。让我试试你的建议。投票通过了,谢谢。让我试试你的建议。投赞成票。你的回答很好,但不能解决我的问题。好像您看到了我的代码,我正在将其作为函数调用,但不确定如何传递OnPressed事件的参数。@讽刺的是,您的意思是:void showSnackBar(BuildContext上下文、字符串标签、颜色、SnackBarAction动作){final snackBar=snackBar(content:Text(label)),backgroundColor:color,action:action,);Scaffold.of(context.showSnackBar(snackBar);}你的回答很好,但没有解决我的问题。好像您看到了我的代码,我正在将其作为函数调用,但不确定如何传递OnPressed事件的参数。@讽刺的是,您的意思是:void showSnackBar(BuildContext上下文、字符串标签、颜色、SnackBarAction动作){final snackBar=snackBar(content:Text(label)),backgroundColor:color,action:action,);Scaffold.of(context.showSnackBar(snackBar);}