第二百零四回 模拟对话窗口的页面

news2024/12/23 10:59:45

文章目录

  • 1. 概念介绍
  • 2. 思路与方法
    • 2.1 实现思路
    • 2.2 实现方法
  • 3. 示例代码
  • 4. 经验分享
  • 5. 内容总结

我们在上一章回中介绍了"修改组件风格的另外一种方法"相关的内容,本章回中将介绍" 如何做一个模拟对话框窗口的页面".闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

对话框是我们在项目中经常使用的组件,我们在前面章回中也介绍过该组件,本章回中将介绍如何创建一个模拟对话框窗口的页面,页面的外观和真正的对话框完整相同,不同的是这个页面是一直显示的,而不是像对话框一样符合条件时才弹出来。

2. 思路与方法

2.1 实现思路

对话框包含标题,内容和按钮,以及窗口背后的灰色背景。我们先使用一个容器组件充当灰色背景,在该容器中再创建对话框窗口。对话框窗口也可以使用容器组件来实现,只是它的长度和宽度比背景容器的长度和宽度要小一些。

接着在对话框窗口容器中使用Text组件来实现标题和内容,窗口中的按钮使用TextButton组件来实现。然后使用布局类组件把窗口中的标题,内容和按钮组合在一起,组合时可以参考对话框的布局。

2.2 实现方法

有了实现思路后,我们来介绍具体的实现方法:

    1. 使用Container组件来创建对话框的背景,它的大小与屏幕相同,填充颜色为灰色;
    1. 使用Container组件来创建对话框,它的长度和宽度小于背景窗口的长度和宽度;
    1. 在对话框容器中使用Column布局,它把对话框分成三行:标题行,内容行和按钮行;
    1. 使用Text组件来实现标题和内容,标题的文字比内容的文字大一些,通过修改字号来实现;
    1. 使用TextButton来实现对话框中的按钮,按钮有两个,使用Row组件来包含这两个按钮;

除了我们介绍的这些步骤外,还需要给按钮添加点击事件响应的内容,也就是给TextButtononPress属性赋值,不过这个属于业务的内容。大家依据具体的业务给按钮赋值就可以,一定要记得给每个按钮的属性赋值。

3. 示例代码

return Scaffold(
  ///对话框的背景
  body: Container(
    color: Colors.black26,
    width: double.infinity,
    height: double.infinity,
    alignment: Alignment.center,
    ///对话框的背景
    child: Container(
      width: 272.w,
      height: 160.w,
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(12),
        color: Colors.white,
      ),
      ///三行内容:标题行,内容行,按钮行
      child: Column(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: [
          ///这个空间可以用来存放标题
          const SizedBox(height: 16,),
          Text(S.current.btisOffPlsOpenIt),
          Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: [
              TextButton(
                onPressed: () {OpenSettings.openBluetoothSetting();},
                child: Text("Yes",style: const TextStyle(color: Colors.black),),
              ),
              TextButton(onPressed: () {}, child: Text("No",style: const TextStyle(color: Colors.black),),),
            ],
          )
        ],
      ),
    ),
  ),
)

上面是的示例完全按照实现方法中的步骤来编写,并且在关键位置添加了代码。编译并且运行上面的代码可以得到下面的运行效果图。

在这里插入图片描述

4. 经验分享

有看官提问说,官方已经提供对话框了,直接拿来使用就可以,为什么要模拟一个对话框?其原因源于我的项目经验,主要有两个,详细如下:

  • 我在项目中使用FlutterBlePlus.turnOn()方法打开手机中的蓝牙开关时会弹出一个对话框窗口,不过无法修改窗口中的提示内容,以及按钮的内容和风格;
  • 在监听蓝牙打开状态的StreamBuilder组件中打开蓝牙时会弹出窗口。但是它会多次弹出窗口,打开蓝牙开关的过对话框提示一次就可以了,弹出多次对话框明显不合理。

鉴于以上两点原因,我们创建模拟对话框的页面,它只显示对话框,但是没有弹出动作,这样就解决了不能修改窗口中的内容以及多次弹出窗口的问题。

5. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • 创建模拟对话框的页面只有对话框的外观,没有弹出动作;
  • 对话框的背景和窗口本身通过容器组件实现;
  • 对话框的标题,内容通过Text组件实现;
  • 对话框的按钮通过TextButton实现,依据项目需求添加按钮的点击事件;
  • 模拟对话框的页面是依据项目中特定需求定制的,大家也可以定制自己的页面;

看官们,与"模拟对话窗口的页面"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1308035.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PCL点云处理之判断某一点在三角形的内部、外部、还是边上(二百二十二)

PCL点云处理之判断某一点在三角形的内部、外部、还是边上(二百二十二) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 点与三角形的位置共有三种: 1 内部 2 外部 3 点刚好在边上 (这个判断还是很有必要的,应用广泛,下面代码复制粘贴即可使用,纯C++实现) 二、算…

模块一——双指针:18.四数之和

文章目录 题目描述算法原理排序双指针 代码实现排序双指针复杂度分析时间复杂度:O(N^3^)空间复杂度:O(log⁡N)或者O(N) 题目描述 题目链接:18.四数之和 算法原理 排序双指针 依次固定⼀个数a ;在这个数a 的后⾯区间上&#x…

点云几何 之 计算二维平面某一点到直线的距离(2)

点云几何 之 计算二维平面某一点到直线的距离(2) 一、算法介绍.二、算法实现1.代码2.结果 总结 一、算法介绍. 计算某一点到直线的距离,这里的直线会用2个点来表示,如果你只有直线上一点和直线的方向向量,应该也可以转…

yo!这里是Linux信号相关介绍

目录​​​​​​​ 前言 基本介绍 概念 信号列表 信号处理 产生(发送)信号 通过按键产生 系统函数产生 软件条件产生 硬件异常产生 阻塞信号 信号状态 sigset_t 状态相关函数 1.sigprocmask 2.sigpending 捕捉信号 内核态与用户态 捕捉过程 sigaction 后…

1.4 Postman的安装

hello大家好,本小节我们来安装一下Postman,好为我们后续的测试工作做准备。 首先,打开Postman的官网Postman API Platform 然后根据同学们自己电脑的操作系统来下载对应的Postman安装包。我这里拿windows来举例。我们点击windows的图标 会跳…

深入解析Freemarker模板引擎及其在Spring Boot中的高级整合

目录 引言1. Freemarker1.1.什么是Freemarker1.2 Freemarker模板组成部分1.3.优点 2. Spring Boot整合Freemarker2.1 配置2.2 数据类型 3. 案例总结 引言 Freemarker作为一款强大的模板引擎,与Spring Boot的整合能够极大地提升Web应用的开发效率和灵活性。本篇博客…

2023 巅峰之作 | AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战

文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目  录 2023年是人工智能大语言模型大爆发的一年,一些概念和英文缩写也在这一年里集中出现&#xff…

你都那么老了,还在每天写博客吗?

关注卢松松,会经常给你分享一些我的经验和观点。 白色便民网:我想多开一个公司会不会被税局查? 事件背景: 松松已创业9年,自媒体14年,经历过从0开公司、项目失败、赚钱等各种高光时刻。所以对于小微企业经营还是…

aardio网页组件:webPageOperation

webPageOperation是webview的初步封装,用来网页填表、操作网页。可操作web.form、web.view、web.view2等浏览器组件。 使用方法 首先把webPageOperation.aardio(源码在后面)放到~\lib\godking目录下,然后新建窗口项目&#xff…

[c]零钱兑换

题目比较简单&#xff0c;看答案就能看懂什么意思 #include<stdio.h> int main() {int count 0;int n;scanf("%d", &n);for (int i 0; i < n; i){for (int k 0; k <n/2; k){for (int j 0; j < n/5 ; j){if (i 2 * k 5 * j n){count;}}}}p…

R2O语义分割: Refine and Represent: Region-to-Object Representation Learning

paper: arxiv.org/pdf/2208.11821v2.pdf repo link: KKallidromitis/r2o: PyTorch implementation of Refine and Represent: Region-to-Object Representation Learning. (github.com) 摘要&#xff1a; 在本文中提出了区域到对象表示学习&#xff08;Region-to-Object Rep…

windows10下jdk安装

文章目录 windows10下jdk安装说明what安装包下载执行安装包验证是否安装成功 windows10下jdk安装 说明 操作系统&#xff1a;windows10 版本&#xff1a;1.8 what JDK(Java Development Kit) 是 Java 语言的软件开发工具包 安装包下载 https://www.oracle.com/java/techn…

4.11 构建onnx结构模型-Clip

前言 构建onnx方式通常有两种&#xff1a; 1、通过代码转换成onnx结构&#xff0c;比如pytorch —> onnx 2、通过onnx 自定义结点&#xff0c;图&#xff0c;生成onnx结构 本文主要是简单学习和使用两种不同onnx结构&#xff0c; 下面以 Clip 结点进行分析 方式 方法一…

下一站 Gen AI 城市巡展指南来了!“码”上出发,Let‘s 构!

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术&#xff0c;观点&#xff0c;和项目&#xff0c;并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏…

【Java用法】Hutool树结构工具-TreeUtil快速构建树形结构的两种方式 + 数据排序

Hutool树结构工具-TreeUtil快速构建树形结构的两种方式 数据排序 一、业务场景二、Hutool官网树结构工具2.1 介绍2.2 使用2.2.1 定义结构2.2.2 构建Tree2.2.3 自定义字段名 2.3 说明 三、具体的使用场景3.1 实现的效果3.2 业务代码3.3 实现自定义字段的排序 四、踩过的坑4.1 坑…

Android studio如何安装ai辅助工具

引言 在没有翻墙的情况下&#xff0c;即单纯在公司打工&#xff0c;经测试&#xff0c;大部分ai工具都是使用不了的&#xff08;比如各种gpt,codeium,copilot&#xff09;&#xff0c;根本登录不了账号&#xff0c;但有一个国内的codegeex是可以使用的&#xff0c;在这里不对各…

DS冲刺整理做题定理(二)线性表、栈、队列的套路

继续归纳套路&#xff0c;做题练习非常重要&#xff0c;王道的基本上足够了&#xff0c;学有余力可以做一下数据结构1800~ DS冲刺整理做题定理&#xff08;一&#xff09;二叉树专题https://blog.csdn.net/jsl123x/article/details/134949736?spm1001.2014.3001.5501 目录 一…

Spring Boot--Freemarker渲染技术+实际案例

目录 Freemarker 1.1.什么是Freemarker 1.2.Freemarker模板组成部分 1.3.优点 FreeMarker常见的方法&#xff1a; 2.2.2.数值 2.2.3.布尔值 2.2.4.日期 2.3.常见指令 2.3.1.处理不存在的值 assign 2.3.4.list 2.3.5.include SpringBoot整合Freemarker Freemarker…

回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 (多指标,多图)

回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 &#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 &#xff08;多指标&#xff0c;多图&#xff09;效果…

数字孪生 5G时代的重要应用场景 - 读书笔记

作者&#xff1a;陈根 第1章&#xff1a;数字孪生概述 数字孪生&#xff1a;对物理世界&#xff0c;构建数字化实体&#xff0c;实现了解、分析和优化集成技术&#xff1a;AI、机器学习、大数据分析构成&#xff1a;传感器、数据、集成、分析、促动器&#xff08;可以人工干预…