如何显示不带脚手架的点心栏

时间:2019-07-30 08:15:06

标签: flutter dart flutter-layout snackbar

我正在尝试在我的应用中显示小吃栏以通知用户,但没有脚手架会显示我错误。我当前的代码是:

scaffoldKey.currentState?.showSnackBar(
    new SnackBar(
      backgroundColor: color ?? Colors.red,
      duration: Duration(milliseconds: milliseconds),
      content: Container(
        height: 50.0,
        child: Center(
          child: new Text(
            title,
            style: AppTheme.textStyle.lightText.copyWith(color: Colors.white),
            overflow: TextOverflow.ellipsis,
          ),
        ),
      ),
    ),
  )

4 个答案:

答案 0 :(得分:5)

使用https://pub.dev/packages/get

然后,您只需调用Get.snackbar()即可在小吃栏上显示要显示的地方。

Get.snackbar('Hi', 'i am a modern snackbar');

注意

您也可以在没有上下文的情况下使用此软件包。

答案 1 :(得分:3)

否,不可能。 Snackbar是Scaffold的一部分。 它必须有一个脚手架父母。 Snackbar

在脚手架内部,您可以像下面这样

BuildContext con=context;
final snackBar = SnackBar(content: Text(message));
Scaffold.of(con).showSnackBar(snackBar);

答案 2 :(得分:2)

Scaffold.of(context).showSnackBar()弃用。您现在应该使用 ScaffoldMessenger。

示例:ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Clicked!")));

Here 列出了新方法的好处。

答案 3 :(得分:1)

它可以获取当前上下文并显示小吃栏:

void _showToast(BuildContext context) {
  final scaffold = Scaffold.of(context);
  scaffold.showSnackBar(
    SnackBar(
      content: const Text('Updating..'),
    ),
  );

this._showToast(context);