gpt4 book ai didi

屏幕 initState 上的 Flutter Snackbar

转载 作者:行者123 更新时间:2023-12-02 16:21:03 27 4
gpt4 key购买 nike

三个问题:

  1. 如何在 initState 或应用程序加载初始屏幕时加载 flutter 中的 snackbar?我有下面的代码,但它会引发错误并且不会加载屏幕文本。
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {

@override
void initState() {
print('In Init State Stream Builder');

_showSnackbar(context);

super.initState();
}

@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text("Hello World"),
),
);
}

void _showSnackbar(BuildContext ctx) {
Scaffold.of(ctx).showSnackBar(
SnackBar(
content: ListTile(
onTap: () {
Scaffold.of(ctx).hideCurrentSnackBar();
},
subtitle: Text("and i'm a subtitle"),
trailing: Icon(Icons.check),
),
duration: Duration(
days: 1,
),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
behavior: SnackBarBehavior.floating,
),
);
}
}

上述代码在加载时抛出错误。

最佳答案

要在 initState() 上初始化 Snackbar,要么延迟,要么在构建布局后执行函数,如下所示:

void initState() {
super.initState();
WidgetsBinding.instance
.addPostFrameCallback((_) => _scaffoldKey.currentState.showSnackBar(SnackBar(content: Text("Your message here..")));
}

关于屏幕 initState 上的 Flutter Snackbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65502756/

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