首页
学习
活动
专区
工具
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,还可以通过回调函数的方式来获取底部弹出框的返回值。你可以定义一个回调函数,并将其作为参数传递给底部弹出框的内容,当底部弹出框关闭时,调用回调函数,并将选择的结果作为参数传递给回调函数。

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

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

相关·内容

  • java学习与应用(4.5)--Cookie、Session、JSP等

    会话技术:Cookie(客户端),Session(服务端)。一次会话中包含多次请求和响应直到一端断开,在一次会话范围内多次请求间共享数据。 Cookie由服务器发送给客户端使用,供客户端多次使用。服务端:创建Cookie(Cookie对象的构造函数传入Cookie信息)、发送Cookie(response.addCookie方法传入参数),接收Cookie(getCookies)。 idea的Settings-->File and Code Templates-->Web-->Java code templates下可以修改Servlet Annoteated Class自动生成的代码以方便自定义自动生成。 服务器发送cookie保存在,响应头的set-cookie下的参数被客户端获取。当客户端再次请求数据时,请求头中的cookie字段添加了之前获取的cookie。 一次请求可以发送多个cookie键值对(多个Cookie对象通过addCookie方法添加),cookie默认在浏览器关闭时被销毁,可设置持久化存储到硬盘时间(Cookie的setMaxAge方法传入整数秒设定存活时间,0为删除,负数为默认方式) cookie在tomcat8之后支持中文数据(直接使用,但特殊字符仍需编码),在tomcat8之前需要编码(可以使用URLEncoder.encode方法decode解码)。cookie范围,默认情况下tomcat服务器多个项目的cookie不能共享(只能在当前虚拟目录下共享),可以使用setPath方法设置为/则可以共享。 不同的tomcat服务器直接的cookie也可以共享,使用setDomain(String path),设置一级域名,则可以在指定一级域名下共享。 浏览器下的cookie大小有限制(4kb,20个),用于存储少量,不太敏感的数据(不安全)。可以用于网页离线的信息设置和同步(不登录情况下的网页偏好设置)。

    03

    深圳Java培训:使用AOP功能和ThreadLocal类实现自定义事务管理

    首先,需要理解ThreadLocal类的作用。ThreadLocal是为了在同一个线程中共享数据,具体原理可以参考源代码,如下: public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) map.set(this, value); else createMap(t, value); } 设置值实际上就是通过map存放的,与map不同的是固定将当前线程作为key值。 public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { ThreadLocalMap.Entry e = map.getEntry(this); if (e != null) { @SuppressWarnings(“unchecked”) T result = (T)e.value; return result; } } return setInitialValue(); } 获取值时通过当前线程去获取值,所以如果在同一个线程中,前面存进去的值,后面是可以取出来用的,以达到线程共享数据的目的。

    01
    领券