美文网首页
Flutter学习之路-Write Your First Flu

Flutter学习之路-Write Your First Flu

作者: 瑶瑶_2930 | 来源:发表于2018-10-28 23:31 被阅读0次

开始学习有些懵,于是想从基础开始学习flutter,这篇文章作为对一些基本函数和常用写法的总结归纳

参考了文章Flutter 开发(1)- 开发框架、流程、编译打包、调试

flutter的优势

  • 热重载 快速
  • dart 简洁
  • 跨平台移动框架 一次编写 到处运行
  • 好看
    理念:一切皆为widget
    material 组件

环境搭建

flutter,dart插件

1.程序入口,主页设计以及添加按钮控件

  • 主函数:void main()
  • runApp()函数使用给定的Widget并使其成为Widget树的根,应该是需要传入一个Widget对象
    比如:
void main(){
   runApp(
    new Center(
        child: new Text(
          'Hello, world!',
            textDirection: TextDirection.ltr,
        ),
      ),
    );
}
import 'package:flutter/material.dart';

void main() {
  // 创建一个 MyApp
  runApp(MyApp());
}

/// 这个 widget 作用这个应用的顶层 widget.
///
/// 这个 widget 是无状态的,所以我们继承的是 [StatelessWidget].
/// 对应的,有状态的 widget 可以继承 [StatefulWidget]
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 创建内容
  }
}// 此种写法便于构建自己需要的app的整体widget

涉及的dart语法

  1. 可选的“尾随逗号”
    因为Flutter代码通常涉及构建相当深的树状数据结构,为了获得良好的自动格式化,建议在函数的参数列表末尾采用可选的尾部逗号。
  2. widget树由两个widget: Center 和 Text组成
    3.将widget作为参数传递给其他widget

2.使用material组件

使用material组件->Material应用程序以MaterialApp widget开始
Scaffold 是Material中主要的布局组件,可以在这个组件下创建些widget,比如:

import 'package:flutter/material.dart';

void main() {
  runApp(new MaterialApp(
    title: 'Flutter Tutorial',
    home: new TutorialHome(),
  ));
}

class TutorialHome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    //Scaffold是Material中主要的布局组件.
    return new Scaffold(
      appBar: new AppBar(
        leading: new IconButton(
          icon: new Icon(Icons.menu),
          tooltip: 'Navigation menu',
          onPressed: null,
        ),
        title: new Text('Example title'),
        actions: <Widget>[
          new IconButton(
            icon: new Icon(Icons.search),
            tooltip: 'Search',
            onPressed: null,
          ),
        ],
      ),
      //body占屏幕的大部分
      body: new Center(
        child: new Text('Hello, world!'),
      ),
      floatingActionButton: new FloatingActionButton(
        tooltip: 'Add', // used by assistive technologies
        child: new Icon(Icons.add),
        onPressed: null,
      ),
    );
  }
}

3.添加一个组件,以button为例

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

class MyApp extends StatelessWidget{
  @over
} 

无状态widget

无状态widget从它们的父widget接收参数, 它们被存储在final型的成员变量中。 当一个widget被要求构建时,它使用这些存储的值作为参数来构建widget。

有状态widget

它知道如何生成State对象,然后用它来保持状态

相关文章

网友评论

      本文标题:Flutter学习之路-Write Your First Flu

      本文链接:https://www.haomeiwen.com/subject/njiaaftx.html