当前位置: 首页 > news >正文

Flutter

项目文件目录结构介绍

注:创建 Flutter 项目名称不要包含特殊字符,不要使用驼峰标识

// TODO

开发中运行一个 Flutter 三种启动方式:

Run 冷启动从零开始启动
Hot Reload 热重载执行 build 方法
Hot Restart 热重启重新运行整个 APP

 代码分析

// Dart 程序入口是 main 函数,Flutter 是 Dart 编写的,所以入口也是 main 函数
main(){
  /**
   * 1. runApp 函数 (Flutter 内部提供的一个函数)
   * 当启动一个 Flutter 应用程序时调用 runApp
   */
  runApp(
    /**
     * runApp入参:Widget
     *
     * 2 Widget(Flutter 中万物皆 Widget)
     * 整个应用程序中所看到的内容几乎都是 Widget,甚至是内边距的设置,
     * 需要使用一个叫 Padding 的 Widget 来做
     */
  );
}

改进页面样式

main() {
  runApp(
      /**
     * 需求:
     * 1 居中显示: 需要使用另外一个Widget,Center
     * 2 文字大一些: 需要给Text文本设置一些样式
     * 在 Text 小部件外层包装了一个 Center 部件,让 Text 作为其 child
     */
      Center(
          child: Text('Hello Flutter',
              textDirection: TextDirection.ltr,
              style: TextStyle(
                  fontSize: 28,
                  color: Colors.red
              )
          )
      )
  );
}

改进页面结构

main() {
  runApp(
      /**
       * 需求:添加导航栏
       * 最外层包裹一个 MaterialApp
       * title:Android 系统中打开多任务切换窗口时显示的标题;(可以不写)
       * home:应用启动时显示的页面,传入了一个 Scaffold
       *
       * Scaffold:
       * 直译:[脚手架],作用:搭建页面的基本结构
       * 所以给 MaterialApp 的 home 属性传入了一个 Scaffold 对象,作为启动显示的 Widget
       * Scaffold 也有一些属性,如 appBar 和 body
       * appBar:用于设计导航栏,传入了一个 title 属性
       * body:页面的内容,传入了之前已经创建好的 Center 中包裹的一个 Text 的 Widget
       */
      MaterialApp(
        home: Scaffold(
            appBar: AppBar(
              title: Text('Title'),
            ),
            body: Center(
            child: Text('Hello Flutter',
                textDirection: TextDirection.ltr,
                style: TextStyle(fontSize: 28, color: Colors.red))
            )
        ),
      )
  );
}

功能进阶

相关文章:

  • 大语言模型内容安全的方式有哪些
  • Springboot使用Redis发布订阅自动更新缓存数据源
  • hive(hdfs)补数脚本
  • k8s环境中的rook-ceph的osd报Permission denied无法正常运行问题的处理方式
  • 【全栈】SprintBoot+vue3迷你商城-细节解析(2):分页
  • Unity中NavMesh的使用 及其 导出给java服务端进行寻路
  • 基于Spring Security 6的OAuth2 系列之十九 - 高级特性--OIDC1.0协议之二
  • 视点开场动画实现(九)
  • KubeSphere 产品生命周期管理政策公告正式发布!
  • ALV某个字段没有显示
  • kubeadm拉起的k8s集群证书过期的做法集群已奔溃也可以解决
  • 【核心算法篇七】《DeepSeek异常检测:孤立森林与AutoEncoder对比》
  • 用Chrome Recorder轻松完成自动化测试脚本录制
  • 计算机网络原理试题六
  • Flink SQL与Doris实时数仓Join实战教程(理论+实例保姆级教程)
  • wangEditor 编辑器 Vue 2.0 + Nodejs 配置
  • 性能测试(三)之环境搭建
  • RocketMQ - 常见问题
  • 12-滑动窗口
  • JavaScript数组-获取数组中的元素
  • 马上评|让“贾宝玉是长子长孙”争议回归理性讨论
  • 谜语的强制力:弗洛伊德与俄狄浦斯
  • 吴勇强、高颜已任南京市委常委
  • 叙利亚政权领导人首访西方国家,与法国总统讨论叙局势
  • 印对巴军事打击后,巴外交部召见印度驻巴临时代办
  • 印巴局势快速升级,外交部:呼吁印巴以和平稳定的大局为重