码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 第三十六回:BottomeSheet Widget


    文章目录

    • 概念介绍
    • 使用方法
    • 示例代码

    我们在上一章回中介绍了AlertDialog Widget相关的内容,本章回中将介绍 BottomSheet Widget.闲话休提,让我们一起Talk Flutter吧。

    概念介绍

    我们在这里说的BottomSheet是一种弹出式窗口,和上一章回中介绍的AlertDialog类似,但是也有不同点:

    • AlterDialog会在屏幕中间位置弹出窗口;
    • BottemSheet会在屏幕底部弹出一个窗口,而且可以调整窗口的大小。

    BotttomSheet主要用来显示当前页面的子内容或者与当前页面相关的操作,比如设置,筛选等,本章回中将详细介绍它的使用方法。

    使用方法

    和其它的Widget一样,BottomSheet提供了相关的属性来控制自己,接下来我们将介绍一些常用的属性:

    • backgroundColor属性:主要用来控制窗口的背景颜色;
    • shape属性:主要用来的控制窗口的形状
    • onClosing属性:主要用来设置窗口关闭时的动作,该属性是必选参数,注意:它的类型是方法;
    • builder属性:主要用来传递上下文参数以及创建窗口中的内容,该属性是必选参数;

    示例代码

    _bottomSheet(BuildContext context) {
      return BottomSheet(
          backgroundColor: Colors.purpleAccent,
          shape: CircleBorder(
            side: BorderSide(),
          ),
          onClosing: () {
            print("close sheet");
          },
          builder: (context) {
            return Container(
              alignment: Alignment.center,
              color: Colors.green,
              width: double.infinity,
              height: 200,
              child: Text("This is a BottomSheet"),
            );
          });
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    我们在上面的代码中把BottomSheet组件封装到一个方法中,这样方便使用,而且有利于管理代码,还有一点需要注意:BottomSheet组件不能单独使用,它需要配合Scaffold组件中的bottomSheet属性一起使用才有效果,下面是示例代码,请大家参考:

    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.purpleAccent,
        title: const Text("Example of All kinds of dialog"),
      ),
      //在这里设置bottomSheet会一直显示
      // bottomSheet: _bottomSheet(context),
      body: Column(
        children: [
        //省略不写
        ],
      ),
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    我们在这里只列出了核心代码,完整的代码可以查看Github上ex019文件中的内容。编译并且运行上面的代码可以在屏幕底部看到一个绿色的弹出窗口,该窗口中只包含一个文本组件,它显示的内容和代码中的一致。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

    看官们,关于BottomeSheet Widget相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 相关阅读:
    基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(一)案例需求
    外汇天眼:ADSS已与analytics KX供应商就合作达成一致
    Autosar Configuration(十一) SomeIP之PHY-Davinci配置Eth/EthTracv
    JS的执行过程
    STM32个人笔记-RS485通讯
    解决问题:已通过系统pip安装了相应模块,但是PyCharm中却提示 No module named xxxx
    为什么学了老忘,计算机怎么学,未来什么方向,如何选择
    刷题日记【第八篇】-笔试必刷题【查找输入整数二进制中1的个数+手套+完全数计算+扑克牌大小】
    信用风险识别问题(MATLAB)
    2022眼康品牌加盟展,北京视力保健展,中国眼科医学技术峰会
  • 原文地址:https://blog.csdn.net/talk_8/article/details/130859087
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号