首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在showBottomSheet关闭时获取值

在Flutter中,showBottomSheet是一个常用的函数,用于显示底部弹出框。当我们需要在关闭底部弹出框时获取其返回值,可以通过一些方法来实现。

一种常见的方法是使用async和await来实现异步操作。我们可以在调用showBottomSheet的地方添加一个await关键字,并将底部弹出框的返回值赋给一个变量。示例代码如下:

代码语言:txt
复制
void openBottomSheet(BuildContext context) async {
  var result = await showModalBottomSheet(
    context: context,
    builder: (BuildContext context) {
      return Container(
        height: 200,
        child: Column(
          children: <Widget>[
            ListTile(
              title: Text('选项1'),
              onTap: () {
                Navigator.pop(context, '选项1');
              },
            ),
            ListTile(
              title: Text('选项2'),
              onTap: () {
                Navigator.pop(context, '选项2');
              },
            ),
          ],
        ),
      );
    },
  );

  // 在这里可以使用result变量获取底部弹出框返回的值
  print(result);
}

在这个示例中,我们使用了showModalBottomSheet来显示底部弹出框,并通过Navigator.pop返回选择的结果。在调用showModalBottomSheet的时候,我们使用了await关键字来等待底部弹出框关闭,并将返回值赋给result变量。你可以根据自己的实际需要修改底部弹出框的内容和逻辑。

除了使用async和await,还可以通过回调函数的方式来获取底部弹出框的返回值。你可以定义一个回调函数,并将其作为参数传递给底部弹出框的内容,当底部弹出框关闭时,调用回调函数,并将选择的结果作为参数传递给回调函数。

综上所述,通过以上的方法,你可以在底部弹出框关闭时获取其返回值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

session浏览器关闭进行何处理?以及回收机制

以下类似代码每个系统里应该都会存在 <?...当用户请求服务器也把session_id一起发送到服务器,通过 session_id提取所保存在服务器端的变量,就能识别用户是谁了。...浏览器关闭 当浏览器关闭的时候,会 清空Cookies ,这是浏览器对自己软件的操作,但是并不能对服务端的储存文件进行操作,所以这个时候服务端的session文件将继续生存。...(当然你必须在你关闭浏览器之前把sessionid记下来了) 让session失效的原因只有两个: 超时,服务器自动回收。可以配置文件中决定它的生存时间等。 程序主动销毁。...那该gc机制是不是一直监听检测每一个session文件?当然不是了~当访问量过大,session文件将会很多,不停处理会让服务器造成不小的开销。

1.1K40
  • Flutter质感设计之持久底部面板

    可以使用Scaffold.showBottomSheet函数创建和显示持久性底部面板。...:获取具有此全局键的树中的控件状态 showBottomSheet:显示持久性的质感设计底部面板 解释:联系上文,_scaffoldKey是Scaffold框架状态的唯一键,因此代码大意为, Scaffold...), child: new Padding( padding: const EdgeInsets.all(32.0), child: new Text( '这是一个持久性的底部面板,向下拖动即可将其关闭...style: new TextStyle( color: themeData.accentColor, fontSize: 24.0 ) ) ) ); }) /** *closed:当此对象控制的元素不再可见完成...控制的元素是新构建的质感设计底部面板,因此代码大意为, 注册底部面板不再可见时调用的函数 */ .closed.whenComplete((){ // mounted:bool值,这个State对象当前是否树中

    73731

    微信小程序----wx.getLocation(OBJECT) APIiOS关闭本机定位,获取定位失败

    安卓关闭定位设置,wx.getLocation(OBJECT) API依然能够获取当前位置的经纬度;但是iOS如果关闭定位设置,wx.getLocation(OBJECT) API就会失败!...}); } }) } }) 注意 iOS关闭定位会导致 wx.getLocation(OBJECT) 调用失败,所以直接在接口调用失败的函数进行提示用户打开定位...必须在 onShow 的生命周期进行当前位置的获取,是由于当第一次进入小程序,该页面已经加载完成,去设置定位,小程序只是进行了 onHide 生命周期,所以在打开定位再次进入小程序的时候只会进行 onShow...注意如果是要进行分页处理, success 函数中需要对页码进行初始化,防止再次进入的时候请求页码大于总页数导致没有值!

    1.4K20

    视频融合平台EasyCVR控制台启动关闭播放日志情况下为何还会打印日志?

    为了便于用户更清晰地了解系统软件及各个模块的运行等情况,我们EasyCVR中增加了日志中心模块,日志中心包括系统日志、信令日志、内核日志以及播放日志。...用户可以排查问题通过日志了解更多的信息,并且日志还支持查看与下载。 有用户反馈,EasyCVR控制台启动的时候,出现播放日志已关闭但是仍然打印日志的情况,请求我们排查协助。...添加如下代码,关闭播放日志且前端播放的时候,进行日志打印判断,如果没有开启播放日志打印,则控制台和日志文件都不打印。...line = 0 } l.mu.Lock() 优化后,再次播放测试,播放日志关闭情况下,控制台已经不打印播放日志了。...视频的输出上,更是能支持RTSP、RTMP、FLV、HLS、WebRTC等多种格式的视频流分发。

    31220

    Flutte部件目录-基本部件(三) 顶

    snackbar或持久底部表,请通过Scaffold.of获取当前BuildContext的ScaffoldState,然后使用ScaffoldState.showSnackBar和ScaffoldState.showBottomSheet...底部表单可以是持久性的,在这种情况下,它使用ScaffoldState.showBottomSheet方法或模态显示,在这种情况下,它使用showModalBottomSheet函数显示....下图显示了当书写语言是从左到右(例如英语),每个插槽出现在工具栏中的位置: ? 如果省略了leading小部件,但AppBar位于带有抽屉的展示台中,则会插入一个按钮以打开抽屉。...这种行为可以通过设置automatedImplyLeading为false来关闭。在这种情况下,一个空的leading部件将导致middle/title部件中开始展开。...FlexibleSpaceBar, 当应用栏可以展开和折叠,它与flexibleSpace一起使用. material.google.com/layout/structure.html#structure-toolbars

    6.3K10

    【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量

    取值后面必须为单词 in ,每一模式必须以右括号结束。取值可以为变量或常 数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;; 。 取值将检测匹配的每一个模式。...下面的脚本提示输入 1 到 4 ,与每一种模式进行匹配: 输入不同的内容,会有不同的结果,例如: 6 跳出循环 循环过程中,有时候需要在未达到循环结束条件强制跳出循环, Shell 使用两个命令来实现该功能...return 后跟数值 n(0-255) 快速入门 2 传递参数给函数 Shell 中,调用函数可以向其传递参数。...函数体内部,通过 的 形 式 来 取 参 数 的 值 , 例 如 , 1 表示 第一个参数, $2 表示第二个参数 ......带参数的函数示例: 输出结果: 注意, 不 能 取 第 十 个 参 数 , 取 第 十 个 参 数 需 要 {10} 。

    3.1K30

    Lock锁——-tryLock()方法

    lock.tryLock()) { try{ //处理任务 }catch(Exception ex){ }finally{ //当获取锁成功最后一定要记住...finally去关闭锁 lock.unlock(); //释放锁 } }else { //else为未获取锁,则无需去关闭锁 //如果不能获取锁,则直接做其他事情...—获取锁成功则返回true; —当失败是分为两种情况: 参数范围内,则不会立即返回值,会等待一段时间,这个时间就是传入的具体参数值,在这个时间内获取锁成功,则依旧返回true; 当过了参数范围后...unit)) { try{ //处理任务 }catch(Exception ex){ }finally{ //当获取锁成功最后一定要记住...finally去关闭锁 lock.unlock(); //释放锁 } }else { //else为未获取锁,则无需去关闭锁 //如果不能获取锁,则直接做其他事情

    1.6K20

    Go跳槽面试 必懂知识点:select和channel

    再说select...case.. golang 的 select 就是监听 IO 操作,当 IO 操作发生,触发相应的动作。...执行select语句的时候,运行时系统会自上而下地判断每个case中的发送或接收操作是否可以被立即执行。 什么是立即执行呢?...1.从已经关闭并且没有值的通道中取值 package main import "fmt" //从关闭的通道中取值示例: func main() { //声明实例化通道ch1 ch1 :=...fmt.Printf("关闭之后取值:%d\n", after_close_value) //打印结果:关闭之后取值:1 select { //通通道ch1中取值 case v...注意:对已经关闭的通道再执行 close 也会引发 panic。 总结 这篇文章解析了Go语言中select和channel面试中可能遇到的进阶知识点。

    59031

    redis的基本数据类型

    链表类型,set无序集合类型,zset有序集合类型和hash哈希类型 redis支持主存同步,数据可以从主服务器上向任意数量的从服务器同步,同样,从服务器也可以作为关联其他从服务器的主服务器 二: linux...(3)set无序集合 set集合不允许有重复的元素,如果有重复的,自动将重复的数据删除 存值:sadd key values   例子: sadd list2 a b c  取值:smembers key...(4)zset集合:有顺序,不能重复 会将插入数据的数字作为排序的依据,默认进行升序的排列 存值:默认按照score进行升序排列 zset   key score1 value1 score2 value2...score3 value3  取值;取出的数据是经过升序排列的没有重复的有序集合 zrange key 0 -1 升序输出 zrevrange key 0 -1 降序输出  删除:zrem key value

    98670
    领券