文章目录

  • 一丶 效果图
  • 二丶 输出一句Hello World
  • 三丶知识点
  • 四丶笔记

一丶 效果图

二丶 输出一句Hello World

import 'package:flutter/material.dart';void main()=>runApp(MyApp());
//等价于:
/*
void main(){runApp(MyApp());
}
*/class MyApp extends StatelessWidget{      //抽离页面全部内容@overrideWidget build(BuildContext context) {// TODO: implement buildreturn MaterialApp(                     //顶层 widgethome:Scaffold(                       //Material Design 布局结构的基本实现appBar: AppBar(                      //显示在界面顶部的一个 AppBar。title: Text('Flutter Demo'),      //标题),body: HomeContent(),              //当前界面所显示的主要内容 Widget。),theme: ThemeData(                   //主题primarySwatch: Colors.yellow        //修改主题颜色),);}
}class HomeContent extends StatelessWidget{ //抽离主界面@overrideWidget build(BuildContext context) {// TODO: implement buildreturn Center(                     //居中child: Text("Hello Flutter",      //Text组件用来显示字符串内容到页面中textDirection:TextDirection.ltr,   //表示文本的显示方式style: TextStyle(                //样式fontSize: 40.0,             //大小color: Colors.yellow,           //颜色),),);}
}

三丶知识点

1 、MaterialApp
MaterialApp 是一个方便的 Widget,它封装了应用程序实现 Material Design 所需要的
一些 Widget。一般作为顶层 widget 使用。

常用的属性:
home(主页)
title(标题)
color(颜色)
theme(主题)
routes(路由)

2、Scaffold
Scaffold 是 Material Design 布局结构的基本实现。此类提供了用于显示 drawer、snackbar 和底部 sheet 的 API。

Scaffold 有下面几个主要属性:
appBar - 显示在界面顶部的一个 AppBar。
body - 当前界面所显示的主要内容 Widget。
drawer - 抽屉菜单控件。

四丶笔记

1.
所有的组件都是类2.
在Dart中,允许实例化类的时候,不写关键词new,例如:
var p = new Persion();
可以写成:
var p = Persion();3.在Flutter里面,我们把Center放在runApp里面是显然不合理的!
因为:当我们的一个组件功能需求很多的时候,我们的代码就会很多,那么我们放到runApp里,代码就会变得很杂乱冗余
所以:我们可以把它单独抽离成一个组件,相当于Java里的封装,减轻程序负担,节俭代码质量4.问题:为什么实例化runApp(MyApp());的时候, Widget build(BuildContext context) {// TODO: implement buildreturn Center(                    //居中child: Text('Hello Flutter',textDirection: TextDirection.ltr, //表示文本的显示方式));}抽象方法会自动执行?
答:build 是用来创建 Widget 的,build 在每次界面刷新的时候都会调用5.child: Text是实例化Text的意思吗?
答:不,我们来看下面这个代码自然就能明白了!class MyApp extends StatelessWidget{@override//build 是用来创建 Widget 的,build 在每次界面刷新的时候都会调用Widget build(BuildContext context) {// TODO: implement buildreturn MaterialApp(home:Scaffold(appBar: AppBar(title: Text('Flutter Demo'),),body: HomeContent(),),theme: ThemeData(primarySwatch: Colors.yellow    //修改主题颜色),);}
}
class HomeContent extends StatelessWidget{@overrideWidget build(BuildContext context) {// TODO: implement buildreturn Center(                    //居中child: Text('Hello Flutter',textDirection: TextDirection.ltr, //表示文本的显示方式style: TextStyle(       //字体样式fontSize: 40.0,//设置颜色的两种方式
//              方式一color: Colors.yellow,
//              方式二://参数依次的含义为:红色,绿色,蓝色,透明度   ,颜色取前三个的混合值,透明度取第四个参数
//            color: Color.fromRGBO(244, 233, 321, 0.5)),));}
}
我们主要分析body就行了其他的不用管,可以看到body是主页内容,他直接     body: HomeContent(),
等价于 body: new HomeContent(),那么意思已经很明显了,就是在要实现哪些功能的时候,就实例化哪些组件即可!

Futter基础第1篇: 实现输出Hello World【MaterialApp、Scaffold】相关推荐

  1. Futter基础第3篇: 实现引用远程图片、本地图片、实现圆形图片,实现圆角图片【Image.network、Image.asset、BorderRadius.circular(150)】

    文章目录 一丶 效果图 二丶 代码+注释 三丶 知识点 一丶 效果图 [1]引用远程图片 [2]引用本地图片 [3]实现圆形图片(方法一).圆角图片(受弧度影响) [4]实现圆形图片(方法二) 二丶 ...

  2. Python学习日记-day1基础篇 字符 输出 注释

    Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...

  3. 拼题A基础篇 11 输出闰年

    拼题A 基础篇11 输出闰年 #include<stdio.h> main() {int year, number = 0;scanf("%d", &year) ...

  4. 算法之基础数论应用篇(一)

    基础数论应用篇 子集和 题目描述 筛质数 筛质数模板 欧拉筛 线性筛 哥德巴赫猜想 夏洛克和他的女朋友 二次筛法 分解质因数 试除法分解质因数 分解阶乘质因子 快速幂 模板 快速幂 快速乘法 序列的第 ...

  5. JavaScript 基础知识 - 入门篇(二)

    11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...

  6. Python基础语法入门篇(一)

    Python基础语法入门篇(二) 1. 注释 在我们工作编码的过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当的添加注释,以辅助自己 或者其他编码人员解读代码. 注释是给程序员看的,为了 ...

  7. Java入门基础教程第一篇

    Java入门基础 Java是是一门面向对象编程语言,现在广泛使用,名声和c/c++.python一样,虽然我最常用的语言是python,但现在现在闲来无事,就写了这篇文章. 目录 Java入门基础 下 ...

  8. vue2+vue3小白零基础教程—vue2篇,全网2021最详细教程

    vue教程 提示:Vue3系列请参考Vue2+Vue3小白零基础教程-vue3篇文章,本文为vue2篇. 1. Vue核心 1.1 Vue简介 1.1.1 Vue是什么 一套用于构建用户界面的渐进式J ...

  9. ppt讲解计算机的组成,计算机基础(基本组成篇)讲解.ppt

    计算机基础(基本组成篇)讲解 计算机的基本组成 计算机由硬件和软件组成 硬件 主板 CPU (中央处理器) 内存 硬盘 显卡.声卡 显示器 键盘.鼠标 主板 主板(Main board,Motherb ...

  10. 零基础学C++——黑马程序员课程笔记(C++基础语法入门篇)

    封面来自互联网侵删 视频地址:点击访问 (我这里开发工具选用VSstudio) 此笔记有三个系列: C++基础语法入门篇 C++核心编程篇 点击查看 C++提高编程篇 文章目录 C++初识 变量 常量 ...

最新文章

  1. 基于ISO的本地yum源配置
  2. 【产品】腾讯产品经理总结:toB的产品经理和toc产品经理区别
  3. 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)
  4. JSP脚本与指令元素
  5. mysql主从不同步 tar_Mysql主从不同步问题处理案例
  6. zabbix的入门到精通之zabbix的触发器Trigger
  7. Java笔记-JNI中Java与C语言解决中文乱码问题
  8. 你们的2016年前端学习计划是什么?
  9. HTML5移动端最新兼容问题解决方案
  10. 无需依赖Adobe Acrobat,在Java中进行PDF格式转换全新攻略
  11. 科技文献检索(七)——检索工具
  12. 2019年web前端工程师工资有多高
  13. 写给程序员的心理学入门知识(一)
  14. 2019FME博客大赛——【零编码】利用FME实现城市高德路况抓取及增量更新——以深圳为例
  15. 从入门到入土:IP源地址欺骗dos攻击实验
  16. 2021大厂Android面试经历,吐血整理
  17. 【网络营销】 ——网站搜索引擎友好型分析
  18. 【PE258】A lagged Fibonacci sequence
  19. Windows系统win10系统看图pdf阅读器软件推荐
  20. 基于SSM框架的校园论坛设计与实现(MySQL、JSP)

热门文章

  1. Linux下MySQL的简单使用(一)
  2. Matlab网格划分
  3. iOS 开发中常见的设计模式
  4. BZOJ_4196_[NOI2015]_软件包管理器_(树链剖分)
  5. javascript 计算每行中的列数
  6. C#利用Process关闭所有的IE窗口
  7. OSError: [Errno 9] Bad file descriptor
  8. 刚刚!腾讯宣布扩招8000人,算法岗成最大亮点!
  9. 【ACL2020】DeeBERT:衡量性能与效率的 BERT 推理方法
  10. 详解依存树的来龙去脉及用法