首页 > 解决方案 > SnackBar 不显示 Flutter

问题描述

有一个问题,SnackBar应该显示在教程视频中,但它没有。

我正在尝试使用 GlobalKey 创建 _scaffoldKey,但它不起作用。

这是我的代码:

void main() {
  runApp(ProviderScope(
    child: MyHomePage(),
  ));
}

final counterStateProvider = StateProvider<int>((ref) {
  return 0;
});

class MyHomePage extends ConsumerWidget {
  @override
  Widget build(BuildContext context, ScopedReader watch) {
    final counter = watch(counterStateProvider);
    return ProviderListener<StateController<int>>(
      provider: counterStateProvider,
      onChange: (context, counterState) {
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(
            content: Text('Value is ${counterState.state}'),
          ),
        );
      },
      child: MaterialApp(
        debugShowCheckedModeBanner: false,
        home: Scaffold(
          floatingActionButton: FloatingActionButton(
            onPressed: () => context.read(counterStateProvider).state++,
            child: Icon(Icons.ios_share_sharp),
          ),
          body: Center(
            child: Text(
              'value: ${counter.state}',
              style: Theme.of(context).textTheme.headline6,
            ),
          ),
        ),
      ),
    );
  }
}

标签: fluttersnackbar

解决方案


推荐阅读