Flutter BottomSheet底部弹窗效果

摘要:
BottomSheet是一个从屏幕底部滑起的列表。

BottomSheet是一个从屏幕底部滑起的列表(以显示更多的内容)。你可以调用showBottomSheet()或showModalBottomSheet弹出

import 'package:flutter/material.dart';
import 'dart:async';
class BottomSheetDemo extendsStatefulWidget {
  @override
  _BottomSheetDemoState createState() =>_BottomSheetDemoState();
}
class _BottomSheetDemoState extends State<BottomSheetDemo>{
  final _bottomSheetScaffoldKey = GlobalKey<ScaffoldState>();
  _openBottomSheet() {
    _bottomSheetScaffoldKey
      .currentState
      .showBottomSheet((BuildContext context) {
        returnBottomAppBar(
          child: Container(
            height: 90.0,
             double.infinity,
            padding: EdgeInsets.all(16.0),
            child: Row(
              children: <Widget>[
                Icon(Icons.pause_circle_outline),
                SizedBox( 16.0,),
                Text('01:30 / 03:30'),
                Expanded(
                  child: Text('从头再来-刘欢', textAlign: TextAlign.right,),
                ),
              ],
            ),
          ),
        );
      });
  }
  Future _openModalBottomSheet() async {
    final option =await showModalBottomSheet(
      context: context,
      builder: (BuildContext context) {
        returnContainer(
          height: 200.0,
          child: Column(
            children: <Widget>[
              ListTile(
                title: Text('拍照',textAlign: TextAlign.center),
                onTap: () {
                  Navigator.pop(context, '拍照');
                },
              ),
              ListTile(
                title: Text('从相册选择',textAlign: TextAlign.center),
                onTap: () {
                  Navigator.pop(context, '从相册选择');
                },
              ),
              ListTile(
                title: Text('取消',textAlign: TextAlign.center),
                onTap: () {
                  Navigator.pop(context, '取消');
                },
              ),
            ],
          ),
        );
      }
    );
    print(option);
  }
  @override
  Widget build(BuildContext context) {
    returnScaffold(
      key: _bottomSheetScaffoldKey,
      appBar: AppBar(
        title: Text('BottomSheetDemo'),
        elevation: 0.0,
      ),
      body: Container(
        padding: EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                FlatButton(
                  child: Text('Open BottomSheet'),
                  onPressed: _openBottomSheet,
                ),
                FlatButton(
                  child: Text('Modal BottomSheet'),
                  onPressed: _openModalBottomSheet,
                ),
              ]
            ),
          ],
        ),
      ),
    );
  }
}

效果:

Flutter BottomSheet底部弹窗效果第1张

Flutter BottomSheet底部弹窗效果第2张

文档:https://api.flutter.dev/flutter/material/BottomSheet-class.html

免责声明:文章转载自《Flutter BottomSheet底部弹窗效果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Lasso估计论文学习笔记(一)matlab画折线下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Neo4J图库的基础介绍(二)-图库开发应用

我们接着Neo4J图库的基础介绍(一)继续介绍Neo4J图库。 JAX-RS是一个用于构建REST资源的Java API,可以使用JAX-RS注解装饰每一个扩展类,从而让服务器处理对应的http请求,附加注解可以用来控制请求和响应的格式,http头和URI模板的格式。 下面看一个服务器扩展实现的示例,允许客户端请求社交网络的两个成员之间的距离 @Pa...

asterisk 基本配置

Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括:  1模拟接接口,如你的电话线或模拟电话.   2数字线路,如T-1和E-1线路   3Voip协议,如SIP和IAX   目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是...

《Zuul网关》之GETPOSTPUT请求报文重组并支持multipart/form-data

1、重组参数 假设需要重新组装的参数如下: @Setter @Getter public class DecodeParameters implementsSerializable{   private static final long serialVersionUID = -874947393093003083830L;   //通用参数   pr...

使用mina传输大字节数组

使用mina传输超过2k以上的数据时(采用tcp方式,如果是UDP方式,好像一次传输的数据不能超过256字节,如果超过mina不会分批次发送,而tcp方式会分批次发送),mina会自动将这些数据分成多次发送。由于是分批次发送数据,所有客服端在接受数据时,需要等所有的数据接受完之后才能解码,否则无法解码,或者只能读取到部分文件。 以下是一个发送、接受大字节数...

.net微信公众号开发——快速入门【转载】

最近在学习微信公众号开发,将学习的成果做成了一个类库,方便重复使用。 现在微信公众号多如牛毛,开发微信的高手可以直接无视这个系列的文章了。 使用该类库的流程及寥寥数行代码得到的结果如下。 本文的源代码主要在:http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount/blob/master/xr...

利用LDAP操作AD域

LDAP操作代码样例  初始化LDAP 目录服务上下文 该例子中,我们使用uid=linly,ou=People,dc=jsoso,dc=net这个账号,链接位于本机8389端口的LDAP服务器(ldap://localhost:8389),认证方式采用simple类型,即用户名/密码方式。 private static void initialConte...