gpt4 book ai didi

flutter - 如何在没有脚手架的情况下显示 snackBar

转载 作者:IT王子 更新时间:2023-10-29 07:16:21 24 4
gpt4 key购买 nike

我试图在我的应用程序中显示 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,
),
),
),
),
)

最佳答案

如果您有权访问上下文,来自 laszlo's answer , 只需调用

ScaffoldMessenger.of(context).showSnackBar(snackBar);

如果您没有上下文(例如:显示网络请求错误),请根据 Miguel Ruvio 的回答使用此代码段

我们将使用属性 scaffoldMessengerKey,它允许我们仅通过一个 GlobalKey 显示 snackbar 而无需上下文。此外,无需添加 Get 等第三方包。


首先,创建一个globals.dart 来存放一个GlobalKey

//globals.dart

import 'package:flutter/material.dart';

final GlobalKey<ScaffoldMessengerState> snackbarKey =
GlobalKey<ScaffoldMessengerState>();

其次,为MaterialApp添加scaffoldMessengerKey属性

//main.dart

import 'globals.dart';

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Test',
scaffoldMessengerKey: snackbarKey, // <= this
...

最后在任何地方引用这个Key就可以显示一个Snackbar

// anywhere

import 'globals.dart';

final SnackBar snackBar = SnackBar(content: Text("your snackbar message"));
snackbarKey.currentState?.showSnackBar(snackBar);

关于flutter - 如何在没有脚手架的情况下显示 snackBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57267165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com