栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

flutter学习(1):目录结构及基本组件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flutter学习(1):目录结构及基本组件

flutter学习(1):目录结构及基本组件

文章目录

flutter学习(1):目录结构及基本组件

一.目录结构二.入口文件和方法

自定义组件加点样式MaterialApp和Scaffold装饰APP

MaterialAppScaffold

利用scaffold加入导航栏

一.目录结构

build 编译目录lib 写代码的地方test 测试pubspec.yaml 依赖

配置文件,一般存放一些第三方库的依赖pub get操作 二.入口文件和方法

入口文件

lib目录下的main.dart

入口方法

main.dart里面的

void main(){
	runApp(MyApp());
}

可简写为

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

runApp方法是flutter自己提供的入口方法

MyApp()是自定义的一个组件

动手实操

引入库

import 'package:flutter/material.dart';

fim 快捷键:flutter import material.dart

在runApp方法里面调用flutter的组件

flutter里面所有组件都是类

实例化时new关键词可以省略

import 'package:flutter/material.dart';

void main() {
  runApp(new Center(
    child: new Text(
      '你好flutter',
      textDirection: TextDirection.ltr,
    ),
  ));
}
S
自定义组件

把上面的内容拿出来作为自定义组件

flutter中自定义组件就是类,需要继承Stateless/StatefulWidget

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

StatelessWidget 是抽象类

有一个bulid抽象方法

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

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
    //new 可省略, 返回的组件作为参数
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(child: Text('你好!', 
    textDirection: TextDirection.ltr)
    );
}
}

StatelessWidget是一个抽象类,其中含有一个抽象方法build

加点样式
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(child: Text('你好!', 
    textDirection: TextDirection.ltr,
   style:TextStyle(
     fontSize: 40.0,//double类型
    //  color:Colors.yellow,
     color: Color.fromRGBO(244,233,121,0.5) //RGBO
   ),
    )
   );
  }
}

MaterialApp和Scaffold装饰APP MaterialApp

一般作为顶层Widget常用属性

home(主页)title(标题)color(颜色)theme(主题)routes(路由) Scaffold

是material design布局结构的基本实现,此类提供了用于显示drawer、snackbar和底部sheet的API主要属性

appBar - 显示在界面顶部的一个AppBarbody - 当前界面所显示的主要内容Widgetdrawer- 抽屉菜单控件 利用scaffold加入导航栏

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      home:Scaffold(
        appBar:AppBar(
          title: Text('Flutter Demo')
        ),
        body:HomeContent(),//主体),
      ),
      theme:ThemeData(primarySwatch: Colors.green),
    );
  }
}

class HomeContent extends StatelessWidget {
  build(BuildContext context) {
    return Center(
        child: Text(
      '你好!',
      textDirection: TextDirection.ltr,
      style: TextStyle(
          fontSize: 40.0, //double类型
          //  color:Colors.yellow,
          color: Color.fromRGBO(244, 233, 121, 0.5) //RGBO
          ),
    ));
  }
}

效果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709298.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号