Flutter入门指南:跨平台开发、Dart语言与布局组件详解

06-01 1229阅读

文章目录

  • 前言
    • 1.Flutter来源
    • 2.Flutter优势
    • 3.跨平台设计理念
    • 4.初学者的必看
    • flutter基础
      • 2.1 Dart语言
      • 2.2 初识Flutter
      • 2.3 GridView网格布局组件介绍
      • 2.4 弹性布局(Flex Expanded)
      • 2.5 Stack层叠组件
      • 2.6 Wrap组件
      • 持续更新中
      • 结尾

        前言

        当你刷到这篇文章,就说明我们有缘。

        1.Flutter来源

        Flutter是谷歌公司开发的一款开源、免费的UI框架,可以让我们快速的在Android和iOS上构建高质量App. 它最大的特点就是跨平台、以及高性能. 目前 Flutter 已经支持 iOS、Android、Web、Windows、macOS、Linux 的跨平台开发.

        2.Flutter优势

        Flutter是谷歌基于Dart语言开发的一款跨平台的App开发框架。它针对的开发者是全部开发者。它的性 能相比RN、Ionic这样的框架要更好一些。

        3.跨平台设计理念

        端上的开发无外乎三件事,“数据获取”,“状态管理”,“页面渲染”。

        而在跨端领域的竟争,是 “虚拟机”,“渲染引擎”,“原生交互”,“开发环境” 的竟争

        Flutter应用在一个VM上运行,使得可在保留状态且无需重新编译情况下,进行热加载。

        发行时,Flutter应用会直接通过AOT编译为机器码或者是JS。大大提高了开发效率。

        4.初学者的必看

        这里只是博主一个人想给想学Flutter的初学者的一些小小建议:

        1. 刚开始学的时候会发现Flutter和很多语法不一样,导致自己会失去学下去的信心,这时候一定不要放弃,一定要在感觉学不下去的时候放松一下。
        2. 我想很多人都是学了Vue或者React等一些前端框架之后再来进阶学习Flutter框架,这里就会导致Flutter的语法与其他的语法有着很大的差距,因此,初学者就要花费很多的时间和不断的去适应这个语法,才能以最快的速度去适应。
        3. 遇到问题多看Flutter官方文档,不要气馁。
        4. 希望初学者都能学有所成,(博主学这个的时候也磨合了一段时间)

        flutter基础

        2.1 Dart语言

        Dart语言是flutter语言的基础,一定要去过一下。如果你有Java的基础,这里基本可以省略。

        //构造函数就是我们在实例化类的时候自动触发得方法
        class Persion {
          String name = 'aa';
          int age = 1;
          //  默认构造器函数
          /*Persion(String name, int age) {
              this.name = name;
              this.age = age;
          }*/
          //默认构造器函数简写
          Persion(this.name, this.age);
          //命名构造函数
          Persion.now(){
            print('我是一个普通命名构造函数');
            var date = new DateTime.now();
            print('当前时间:{$date}');
          }
          void printInfo() {
            print('${this.name}-----------${this.age}');
          }
        }
        void main() {
          Persion p1 = new Persion('小红', 18);
          p1.printInfo();
          Persion p2 = new Persion('大红', 19);
          p2.printInfo();
          Persion now = new Persion.now();
        }
        

        2.2 初识Flutter

        • 1、MaterialApp

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

        • 2、Scaffold

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

          的API。

          Flutter入门指南:跨平台开发、Dart语言与布局组件详解

          2.3 GridView网格布局组件介绍

          • GridView网格布局

            GridView网格布局在实际项目中用的也是非常多的,当我们想让可以滚动的元素使用矩阵方式排列的时候。此时我们可以用网格列表组件GridView实现布局。

            class HomePage extends StatelessWidget {
              const HomePage({Key? key}) : super(key: key);
              List _getListData() {
                List list = [];
                for (var i = 0; i  
            

            2.4 弹性布局(Flex Expanded)

            • 弹性布局(Flex Expanded)

              Row 和 Column 都继承自 Flex ,参数基本相同,所以能使用Flex的地方基本上都可以使用 Row 或 Column 。 Flex 本身功能是很强大的,它也可以和

              Expanded 组件配合实现弹性布局 。

              import 'package:flutter/material.dart';
              void main() => runApp(const MyApp());
              class MyApp extends StatelessWidget {
                const MyApp({super.key});
                @override
                Widget build(BuildContext context) {
                  return MaterialApp(
                    title: 'Material App',
                    home: Scaffold(
                        appBar: AppBar(
                          title: const Text('水平弹性布局'),
                        ),
                        body: const HomePage()),
                  );
                }
              }
              class HomePage extends StatelessWidget {
                const HomePage({super.key});
                @override
                Widget build(BuildContext context) {
                  return Flex(
                    direction: Axis.horizontal,
                    children: [
                      Expanded(
                          flex: 2,
                          child: IconContainer(
                            Icons.home,
                            color: Colors.green,
                          )),
                      Expanded(
                        flex: 1,
                        child: IconContainer(
                          Icons.search,
                          color: Colors.orange,
                        ),
                      )
                    ],
                  );
                }
              }
              class IconContainer extends StatelessWidget {
                Color color;
                double size;
                IconData icon;
                IconContainer(this.icon,
                    {super.key, this.color = Colors.red, this.size = 32});
                @override
                Widget build(BuildContext context) {
                  return Container(
                    height: 100,
                    width: 100,
                    color: color,
                    child: Center(
                      child: Icon(
                        icon,
                        size: size,
                        color: Colors.blueGrey,
                      ),
                    ),
                  );
                }
              }
              

              2.5 Stack层叠组件

              • Stack

                Stack表示堆的意思,我们可以用Stack或者Stack结合Align或者Stack结合 Positiond来实现页面的定位 布局

                2.6 Wrap组件

                • Wrap组件

                  Wrap可以实现流布局,单行的Wrap跟Row表现几乎一致,单列的Wrap则跟Column表现几乎一致。但

                  Row与Column都是单行单列的,Wrap则突破了这个限制,mainAxis上空间不足时,则向crossAxis上

                  去扩展显示。

                  Flutter入门指南:跨平台开发、Dart语言与布局组件详解

                  持续更新中

                  结尾

                  本文章会持续更新,多多点赞多多支持小猿,你们点赞和收藏是小猿的动力,爱你们。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码