flutter 开启篇

本文介绍了Flutter的项目创建,通过命令行和Android Studio,并展示了如何编写HelloWorld程序。接着,讲解了命名可选参数和Material设计风格,包括Scaffold、AppBar和Text widget的使用,最后通过优化代码实现更优雅的展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

flutter 是啥,以及环境,介绍性的很多东西在这里就不会阐述了,这篇文章主要还是以flutter实际开发为主。以androidStudio 作为主要开发工具

创建项目

使用命令行创建:项目名称:flutter_1

  • 注意:项目名称不能包含特殊符号,也不能有大写字母
flutter create flutter_1

使用开发工具 android-studio

在这里插入图片描述
这两个plugins 是需要的
在这里插入图片描述
直接运行是这个效果
在这里插入图片描述
作为我们刚开始,这个示例代码我们就先不写了

Helloworld

编辑main.dart
import 'package:flutter/material.dart';

main(List<String> args) {
  runApp(new Text("Hello World", textDirection: TextDirection.ltr));
}
  • import 'package:flutter/material.dart'; 这一句是必须加的,这也是调用runApp()函数的类
  • main函数大家都知道 后面的集合就是启动的入参,可以不加
  • runApp(Wdiget) 入参就是整个页面,你可以理解他为android布局中 最外层的 LinnearLayout,或者网页中的 body>
  • 可以用lamda 表达式
  • new 在 flutter 2.0之后可以省略
  • textDirection 需要制定字段名,因为他是命名可选参数源码如下,
class Text extends StatelessWidget {
const Text(
   String this.data, {//花括号里面的都是命名可选参数
   Key? key,
   this.style,
   this.strutStyle,
   this.textAlign,
   this.textDirection, // 排版  .ltr 从左边开始, .rtl,右边开始
   this.locale,
   this.softWrap,
   this.overflow,
   this.textScaleFactor,
   this.maxLines,
   this.semanticsLabel,
   this.textWidthBasis,
   this.textHeightBehavior,
 }) 
}

命名可选参数 就是对顺序没有要求,可有可无,但是调用需要字段指定,跟ios的swift挺像

  • 从textDirection 点进去就知道他要什么类型的参数了
    在这里插入图片描述
简写
import 'package:flutter/material.dart';

main() => runApp(Text("Hello World", textDirection: TextDirection.ltr));
效果

在这里插入图片描述
连状态栏的地方都占了,ios 有统一的脚手架,android 有toolbar,那flutter呢?

有,继续看

Material设计风格

  • 熟悉android的应该知道Material Design布局风格
  • material是Google公司推行的一套设计风格,设计规范等;
  • 里面有非常多的设计规范,比如颜色、文字的排版、响应动画与过度、填充等等
  • 在Flutter中高度集成了Material风格的Widget;
  • 在Material的下面的widget 会是Material风格
import 'package:flutter/material.dart';
main() => runApp(
     MaterialApp( //Material设计风格
        home: Scaffold(  //脚手架
           appBar: AppBar(
                title: Text("这是个页面"),  //titlebar
           ),
           body: Text(
                "Hello World",  //正文
           ),
        )
    )
);
效果

在这里插入图片描述
ios
在这里插入图片描述

好起来了对不对

但是,代码太啰嗦了,且不好读

优雅一点

main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false, //这个能去掉右上角的的debug 
      home: Scaffold(
        appBar: AppBar(
          title: Text("这是个页面"),
        ),
        body: MyBody(),
      ),
    );
  }
}

class MyBody extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center( //居中
        child: Text(
          "Hello World",
        ),
      );
  }
}
效果

在这里插入图片描述

等会

下一篇是布局相关的文章

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值