iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在Flutter中确显示SnackBar
  • 800
分享到

如何在Flutter中确显示SnackBar

2023-06-15 01:06:33 800人浏览 独家记忆
摘要

如何在Flutter中确显示SnackBar?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。官方示例显示SnackBar,官方典型示例代码如下所示:import 

如何在Flutter中确显示SnackBar?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

官方示例

显示SnackBar,官方典型示例代码如下所示:

import 'package:flutter/material.dart';void main() => runApp(MyApp());class MyApp extends StatelessWidget {  // This widget is the root of your application.  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Flutter Code Sample for Scaffold.of.',      theme: ThemeData(        primarySwatch: Colors.blue,      ),      home: Scaffold(        body: MyScaffoldBody(),        appBar: AppBar(title: Text('Scaffold.of Example')),      ),      color: Colors.white,    );  }}// 在Scaffold子组件里的build方法可以调用Scaffold.of方法class MyScaffoldBody extends StatelessWidget {  @override  Widget build(BuildContext context) {    return Center(      child: RaisedButton(        child: Text('SHOW A SNACKBAR'),        onPressed: () {          Scaffold.of(context).showSnackBar(            SnackBar(              content: Text('Have a snack!'),            ),          );        },      ),    );  }}

错误示例

但是若直接在构建Scallfold的build方法中调用会报异常:

Scaffold.of() called with a context that does not contain a Scaffold.

错误代码如下所示:

import 'package:flutter/material.dart';class ScaffoldSnackBarDemo extends StatelessWidget {  // This widget is the root of your application.  @override  Widget build(BuildContext context) {    return Scaffold(      body: Center(        child: RaisedButton(          child: Text('SHOW A SNACKBAR'),          onPressed: () {            ///直接在Scallfold的build方法里使用会抛异常            Scaffold.of(context).showSnackBar(              SnackBar(                content: Text('Have a snack!'),              ),            );          },        ),      ),      appBar: AppBar(title: Text('Scaffold.of Example')),    );  }}

解决方法一:Scaffold的子组件通过Builder构建

这时候要不就是按官方的,将需要显示SnackBar的代码另外抽离一个自定义子组件,在子组件的build方法再显示SnackBar,要不就是在Scaffold的build方法体对该子组件再包一层Builder,如下所示。

import 'package:flutter/material.dart';class ScaffoldSnackBarDemo extends StatelessWidget {  // This widget is the root of your application.  @override  Widget build(BuildContext context) {    return Scaffold(       ///在子组件外再包一层builder,让context不共用      body: Builder(builder: (context) {        return Center(          child: RaisedButton(            child: Text('SHOW A SNACKBAR'),            onPressed: () {              Scaffold.of(context).showSnackBar(                SnackBar(                  content: Text('Have a snack!'),                ),              );            },          ),        );      }),      appBar: AppBar(title: Text('Scaffold.of Example')),    );  }}

解决方法二:使用GlobalKey存储ScaffoldState

import 'package:flutter/material.dart';class ScaffoldSnackBarDemo extends StatelessWidget {  final _scallfoldKey = GlobalKey<ScaffoldState>();  @override  Widget build(BuildContext context) {    return Scaffold(      ///使用GlobalKey解决      key: _scallfoldKey,      body: Center(        child: RaisedButton(          child: Text('SHOW A SNACKBAR'),          onPressed: () {            _scallfoldKey.currentState.showSnackBar(SnackBar(              content: Text('Have a snack!'),            ));          },        ),      ),      appBar: AppBar(title: Text('Scaffold.of Example')),    );  }}

看完上述内容,你们掌握如何在Flutter中确显示SnackBar的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何在Flutter中确显示SnackBar

本文链接: https://www.lsjlt.com/news/276729.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Flutter中确显示SnackBar
    如何在Flutter中确显示SnackBar?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。官方示例显示SnackBar,官方典型示例代码如下所示:import ...
    99+
    2023-06-15
  • Flutter 如何正确显示SnackBar
    目录简介官方示例错误示例解决方法一:Scaffold的子组件通过Builder构建解决方法二:使用GlobalKey存储ScaffoldStateFlutter学习Github代码仓...
    99+
    2024-04-02
  • 如何在PHP Dompdf中正确显示中文字符
    如何在PHP Dompdf中正确显示中文字符 在使用PHP Dompdf生成PDF文件时,遇到中文字符显示乱码的问题是一个常见的挑战。这是因为Dompdf默认使用的字体库中不包含中文字...
    99+
    2024-03-05
    中文 php dompdf
  • python如何设置matplotlib正确显示中文
    这篇文章主要介绍python如何设置matplotlib正确显示中文,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码...
    99+
    2023-06-15
  • 如何让VSCode中文界面正确显示
    标题:如何让VSCode中文界面正确显示 在使用Visual Studio Code(以下简称VSCode)中文界面时,有时候可能会遇到显示异常或乱码的问题。这一问题通常是由于编码设置...
    99+
    2024-04-02
  • 【Flutter】如何在 Flutter 中获取设备 ID
    文章目录 一、 前言二、 设备 ID 的重要性1. 什么是设备 ID2. 设备 ID 的作用 三、 在 Flutter 中获取设备 ID1. 需要的工具和库2. 简单代码示例3. 完整可以运行的代码 四、 注意事项1. ...
    99+
    2023-08-17
    flutter android ios 原力计划
  • 如何在MySQL中显示root的GRANTS?
    对于此操作,请使用以下语法,其中我们使用了 SHOW GRANTS −SHOW GRANTS FOR 'yourUserName'@'yourHostName';HostName 可以是“%”或 localh...
    99+
    2023-10-22
  • php时间显示不正确如何解决
    这篇“php时间显示不正确如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php时间显示不正确如何解决”文章吧。php...
    99+
    2023-07-04
  • 正确在Flutter中添加webview实现详解
    目录前言安装运行项目遇到的问题前言 为什么要在flutter中引入webview?这不是废话么,当然是为了加载一个网页,这不是移动端最基本的需求么,哈哈!说的真不错,接下来我要是告诉...
    99+
    2022-12-08
    Flutter添加webview Flutter webview
  • java如何在窗体中显示文字
    在Java中,可以使用javax.swing.JFrame类来创建一个窗体,并使用javax.swing.JLabel类来显示文字。...
    99+
    2023-08-20
    java
  • Win8下如何显示删除确认对话框
       1. 右键回收站图标,选择属性;  uo;显示删除确认对话框”即可。 ...
    99+
    2023-06-06
    Win8 对话框
  • 在CentOS命令行中如何显示中文
    本篇内容介绍了“在CentOS命令行中如何显示中文”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在使用CentOS的众多用户中,很多人都存在...
    99+
    2023-06-16
  • 如何在css中不显示下边框
    这篇文章将为大家详细讲解有关如何在css中不显示下边框,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。元素的边框 (border) 是围绕元素内容和内边距的一条或多条线。CSS border ...
    99+
    2023-06-15
  • 如何在 PHP 中显示错误信息
    在本文中,我们将介绍一种在 PHP 中显示错误信息的方法。 使用 ini_set() 和 error_reporting() 函数 在 PHP 中使用 ini_set() 和 erro...
    99+
    2024-02-27
  • session在jsp中不显示如何解决
    如果在JSP中使用Session的值,但是值不显示,可能有以下几个原因:1. 检查是否正确设置了Session的值。可以在设置Ses...
    99+
    2023-09-14
    JSP session
  • 如何在Flutter中使用CircularProgressIndicator
    要在Flutter中使用CircularProgressIndicator,您可以按照以下步骤进行操作:1. 导入Flutter的m...
    99+
    2023-09-17
    Flutter
  • 如何在php中显示错误级别
    这期内容当中小编将会给大家带来有关如何在php中显示错误级别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。警告:生产环境永远都不要显示任何错误信息!显示错误(display_errors)和错误报告(er...
    99+
    2023-06-15
  • lunix显示修改日期不正确如何解决
    如果Linux系统上的文件或目录的修改日期显示不正确,可以尝试以下方法解决:1. 检查系统的时钟设置:验证系统时钟是否设置正确,可以...
    99+
    2023-08-29
    lunix
  • 如何在html中显示和隐藏元素
    本篇文章为大家展示了如何在html中显示和隐藏元素,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。html是什么html的全称为超文本标记语言,它是一种标记语言,包含了一系列标签.通过这些标签可以将网...
    99+
    2023-06-06
  • 如何在Android中利用View显示分数
    这篇文章给大家介绍如何在Android中利用View显示分数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。所用的知识:(1)自定义View中的 path ,主要用来绘制指示块。(2)属性动画-ValueAnimator...
    99+
    2023-05-31
    android view roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作