前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter入门到进阶(三)-Flutter从零开始

Flutter入门到进阶(三)-Flutter从零开始

作者头像
用户6256742
发布2024-05-25 10:13:46
550
发布2024-05-25 10:13:46
举报
文章被收录于专栏:网络日志网络日志

在此之前,我们已经运行成功Flutter的示例工程,在main.dart文件中默认生成了很多代码,这个时候,这些代码我们是看不大明白的,所以我们从零开始学习Flutter组件,将main.dart文件清空,我们自己来写界面,一步步熟悉Flutter界面的搭建流程;

导入头文件

我们在iOS工程中写UI控件的时候一般需要导入UIKit框架,那么在Flutter中也是同样的道理,需要导入框架,在Flutter中,这个框架名叫material.dart,导入方式为:

代码语言:javascript
复制
import 'package:flutter/material.dart';

这个库类似于iOS中的UIKit,是一个素材库

注意:如果导入了文件,而没有使用,那么光标点击其他地方的时候,此处的import有可能会消失;

万物皆Widget

我们在做iOS开发的时候,我们会经常使用UIView,那么在Flutter中,对应的控件名为Widget(小部件),万物皆为Widget

一切从runApp开始

iOS中我们把容器放在UIWindow上,那么在Flutter上,如果我们需要显示界面,那么需要先执行runApp()方法

代码语言:javascript
复制
void main() {
  runApp(

  );
}

我们需要在runApp函数中,传入一个Widget部件;

两个简单的Widget

Center

我们先在界面上显示一个Center,这个Widget看名字就是将控件显示在视图中间的;

代码语言:javascript
复制
void main() {
  runApp(
    Center(
      
    )
  );
}

Center中,有一个child,意思类似于iOS中的subView,存放子控件;

Text

我们在Center中添加一个显示文字的Text

代码语言:javascript
复制
void main() {
  runApp(
    Center(
      child: Text(
        '第一行代码',
        textDirection: TextDirection.ltr,
      ),
    )
  );
}
  • textDirectionFlutterText特有的属性,不写的话,在此处的Text控件无法显示,可以理解为文字的阅读方向,ltr为从左到右,rtl为从右到左,但是其显示效果一样;

这个时候,我们发现我们的代码会发出警告信息:

Flutter入门到进阶(三)-Flutter从零开始
Flutter入门到进阶(三)-Flutter从零开始

将光标移动到黄色虚线位置时,将会出现💡(灯泡),点击出现提示信息:

Flutter入门到进阶(三)-Flutter从零开始
Flutter入门到进阶(三)-Flutter从零开始

最终代码变为:

代码语言:javascript
复制
void main() {
  runApp(
    const Center(
      child: Text(
        '第一行代码',
        textDirection: TextDirection.ltr,
      ),
    )
  );
}

加上const之后,Center将会变成一个常量,因为目前Center组件不会动态改变,那么Flutter将会推荐将其定义为const; ​

运行代码,效果如下:

Flutter入门到进阶(三)-Flutter从零开始
Flutter入门到进阶(三)-Flutter从零开始

此时界面中存在两个WidgetCenterText

Flutter的小知识

Flutter的渲染机制

Flutter的渲染机制我们称之为增量渲染,这个渲染机制的存在也是Flutter效率高的原因; ​

那么什么是增量渲染呢?我们在iOS中要改变UIView的样式时,我们可以直接调用其属性进行修改;但是在Flutter中,如果我们想要改变view1的效果,那么我们就需要创建一个view2,用view2view1替换掉,重新渲染这一部分控件; ​

被标记为const的控件是不会改变的(静态的),那么在Flutter渲染树中,被标记为const的控件将不会改变; ​

Flutter中没有图层的说法;在Xcode中进行调试的时候,Flutter视图只有一层;逆向的时候也就很难从UI入手了;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入头文件
  • 万物皆Widget
  • 一切从runApp开始
  • 两个简单的Widget
    • Center
      • Text
      • Flutter的小知识
        • Flutter的渲染机制
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档