前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter开发项目入门

Flutter开发项目入门

作者头像
越陌度阡
发布2022-05-06 14:53:43
4360
发布2022-05-06 14:53:43
举报

在Flutter里面一切皆组件,不同于CSS的样式,在Flutter里面,样式的值也基本都是组件。

以下是一个最简单的Flutter项目代码:

代码语言:javascript
复制
import 'package:flutter/material.dart';
 
void main(){
    runApp(Center(
        child: Text( 
            "你好,Flutter", 
            textDirection: TextDirection.ltr, 
        ), 
    ));
}

实际的项目中一般比较大,为了代码的可维护性,我们会把 runApp() 里的内容单独抽离成一个自定义的组件。

在 Flutter 中自定义组件其实就是一个类,这个类需要继承 StatelessWidget/StatefulWidget。

StatelessWidget 是无状态组件,状态不可变的 widget。

StatefulWidget 是有状态组件,持有的状态可能在 widget 生命周期改变。

代码语言:javascript
复制
import 'package:flutter/material.dart';
 
void main(){
    runApp(MyApp());
}
// 将runApp()里抽离成一个组件
class MyApp extends StatelessWidget{
    // 覆写
    @override
    Widget build(BuildContext context) {
        return Center(
            child: Text( 
                "你好,Flutter", 
				// 文字方向从左向右
                textDirection: TextDirection.ltr, 
            ), 
        );
    }
}

使用 MaterialApp 和 Scaffold 这两个组件,会看起来更像一个APP。

代码语言:javascript
复制
import 'package:flutter/material.dart';
 
void main(){
    runApp(MyApp());
}
 
// 将runApp()里抽离成一个组件
class MyApp extends StatelessWidget{
    @override
    Widget build(BuildContext context) {
        return MaterialApp(
            home: Scaffold(
                appBar:AppBar(title:Text('Flutter App')),
                body:HomeContent(),
            ),
            theme: ThemeData(primarySwatch:Colors.yellow),
        );
    }
}
 
// 将Scaffold里面的body也抽离成一个组件
class HomeContent extends StatelessWidget{
    @override
    Widget build(BuildContext context) {
        return Center(
            child:Text(
                '你好,Flutter',
                textDirection:TextDirection.ltr, 
                style:TextStyle(
                    // 字体大小都是double类型,必须有小数
                    fontSize: 40.0,
                    // color:Colors.yellow
                    color:Color.fromRGBO(100, 255, 100, 0.5)
                ),
            )
        );
    }
}   

MaterialApp 是一个方便的 Widget,它封装了应用程序实现 Material Design 所需要的 一些 Widget,一般作为顶层 widget 使用。该组件常用的属性如下:

1. home 主页

2. title 标题

3. color 颜色

4. theme 主题

5. routes 路由

Scaffold 是 Material Design 布局结构的基本实现,它提供了用于显示 drawer、 snackbar 和底部 sheet 的 API。该组件主要的属性如下:

1. appBar  显示在界面顶部的一个 AppBar。

2. body  当前界面所显示的主要内容 Widget。

3. drawer  抽屉菜单控件。

以下是在上面代码在模拟器上跑起来的效果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档