IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Flutter基础(1) -> 正文阅读

[移动开发]Flutter基础(1)

一. 创建Flutter项目

1.1. 通过命令行创建

通过命令行创建非常简单,在终端输入以下命令即可:

  • **注意:**Flutter的名称不要包含特殊的字符,另外不可以使用驼峰标识

  • 创建完之后使用自己喜欢的开发工具打开即可

项目有两种方式:通过命令行创建?和?通过开发工具创建


flutter create learn_flutter

1.2. 通过开发工具创建

我这里也可以直接通过Android Studio来进行创建:

  • 选择Start a new Flutter project,之后填写相关的信息即可,这里不再赘述

1.3. 默认程序分析

二. 开始Flutter代码?

2.1. Hello World

import 'package:flutter/material.dart';

main(List<String> args) {
  runApp(Text("Hello World", textDirection: TextDirection.ltr));
}

如果要居中,文字颜色等

textDirection ?传入文字方向
style ?设置样式,字体颜色等
Center 也是一个Widget,实现居中操作

三、Widget介绍

Widget是所谓的组件

  • StatelessWidget:?没有状态改变的Widget,通常这种Widget仅仅是做一些展示工作而已;

  • StatefulWidget:?需要保存状态,并且可能出现状态改变的Widget;

3.1Scaffold

?是什么呢?

  • 翻译过来是脚手架,脚手架的作用就是搭建页面的基本结构;

  • 所以我们给MaterialApp的home属性传入了一个Scaffold对象,作为启动显示的Widget;

  • Scaffold也有一些属性,比如appBarbody

  • appBar是用于设计导航栏的,我们传入了一个title属性

  • body是页面的内容部分,我们传入了之前已经创建好的Center中包裹的一个Text的Widget;

主要参数有 appBar(导航栏或者Tabbar),body(界面内容)

?

runApp(MaterialApp(
  debugShowCheckedModeBanner: false,
  home: Scaffold(
      appBar: AppBar(
          title: Text(
        "第一个项目",
        style: TextStyle(fontSize: 20, color: Colors.white),
      )),
      body: Center(
          child: Text("Hello world",
              textDirection: TextDirection.ltr,
              style: TextStyle(fontSize: 30, color: Colors.red))))));

3.2StatelessWidget

StatelessWidget通常是一些没有状态(State,也可以理解成data)需要维护的Widget:

  • 它们的数据通常是直接写死(放在Widget中的数据,必须被定义为final,为什么呢?我在下一个章节讲解StatefulWidget会讲到);

  • 从parent widget中传入的而且一旦传入就不可以修改;

  • 从InheritedWidget获取来使用的数据(这个放到后面会讲解);

我们来看一下创建一个StatelessWidget的格式:

build方法什么情况下被执行呢?:

  • 1、让自己创建的Widget继承自StatelessWidget;

  • 2、StatelessWidget包含一个必须重写的方法:build方法;

    
    class MyStatelessWidget extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return <返回我们的Widget要渲染的Widget,比如一个Text Widget>;
      }
    }

    ?

    build方法的解析:

  • Flutter在拿到我们自己创建的StatelessWidget时,就会执行它的build方法;

  • 我们需要在build方法中告诉Flutter,我们的Widget希望渲染什么元素,比如一个Text Widget;

  • 1、当我们的StatelessWidget第一次被插入到Widget树中时(也就是第一次被创建时);

  • 2、当我们的父Widget(parent widget)发生改变时,子Widget会被重新构建;

  • 3、如果我们的Widget依赖InheritedWidget的一些数据,InheritedWidget数据发生改变时;

  • StatelessWidget没办法主动去执行build方法,当我们使用的数据发生改变时,build方法会被重新执行;

3.3StatefulWidget

有状态改变的 Widget, 通常做交互变化状态,或者页面依据 data 刷新展示

为什么 StatefullWidget 是可变的?

  • 其实无论 StatelessWidget 还是 StatefulWidget,其父类都是 Widget 因此它定义成员变量也是 final 修饰不可变~
  • 但是继承 StatefulWidget 的子类,必需要实现 State createState(); 抽像方法。
  • 所以可以变的是 State 这也是与 StatelessWidget 不一样的地方

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 08:13:48  更:2021-11-25 08:16:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:23:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码