3、Flutter - 入门 及 控件基础(一)

Flutter 入门

 

Flutter 使用的是 Dart 语言

Dart 单线程语言
Flutter 都是单线程执行的

 

1、基础知识

1.1、AS 简单界面介绍

1.2、命令行打卡Flutter 并选择运行设备
如果是iOS真机的话需要用xcode 打开 工程,然后配置证书。(跟正常iOS的配置一样)

1.3、被锁

在使用iOS模拟的时候,有可能会出现闪退,如果出现闪退报错提示被锁的时候。去倒Flutter 的bin -> cache 目录下删除lockfile 文件重新运行即可

1.4、创建工程

创建文件夹

创建文件

 

2、控件基础

2.1、导入UI空间所以在的包

导入UI空间所以在的包(材料市场,所有的UI空间都在这里,相当于iOS中的UIKit)

import 'package:flutter/material.dart';

Main函数里面的
runApp() 里面包含的视图就是根视图,
例如

import 'package:flutter/material.dart';
import 'package:wechat/root_page.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        //1, 0, 0, 0.0 设置为透明 0.0透明度 item长按
        highlightColor: Color.fromRGBO(1, 0, 0, 0.0),
        //tabbar item点击
        splashColor: Color.fromRGBO(1, 0, 0, 0.0),
        cardColor: Color.fromRGBO(1, 1, 1, 0.5),
        primarySwatch: Colors.blue
        //点击的水波纹去掉。tabbar
        //visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: RootPage(),
    );
  }
}

RootPage()  root_page 文件里面写的,我们的tabbar

 

2.2、Center() 布局

是用来布局的,空间要的大小、颜色等要放在一个地方,用Center(),在里面写空间,并进行布局

 

2.3、child

相当于子控件,放一个东西进到布局里来,如下放的一个Text(同iOS中的UILabel)

void main() {
  runApp(
//  MyWidget()
  Center(
    child: Text(
      'Hello Flutter',
      textDirection: TextDirection.ltr, //从左到右排列
    ),
  ));
}
textDirection: TextDirection.ltr, //从左到右排列

这个排列方向是必须要加的,否者会报错。因为系统并不知道如何排列,所以会报错。在后面会用到一些高级的UI,就不需要了,系统做了处理的。

 

2.4、自定义控件

例如,可以在runAPP中直接调用
//错误 option + 回车 会提供解决方案
//MyWidget 小部件
//类名可以用驼峰命名,文件名只能用下划线不能用驼峰,不能用大写

class MyWidget extends StatelessWidget {
  //覆盖了父类
  @override
  Widget build(BuildContext context) {
//    return null;
    return Center(
      child: Text(
        'Hello Flutter',
        textDirection: TextDirection.ltr,
      ),
    );
  }
}

在runApp中直接调用 MyWidget() 就可以了
//如果就一行代码,可以不用代码块,直接 => 就行了

//void main() => runApp(MyWidget());

2.4.1、build

返回 Widget 也就是用户界面

2.4.2、@override

代表这个方法覆盖了父类
参数 context

Text(
  '123',
  textDirection: TextDirection.ltr,
  style: TextStyle(fontSize: 40, color: Colors.red, fontWeight: FontWeight.bold),
),
  • fontSize 字体大小
  • FontWeight.bold 字体加粗

Style 这样属性的形式有个好处就是我们的 TextStyle ,如果后面有一样的配置,可以抽出来,写一个全局的,然后在用的时候,直接用就行了。

单击 TextStyle (某一个类的类名), 然后CMD + y 就可以看到他有那些属性了

extends StatelessWidget
继承 StatelessWidget


2.5、MaterialApp

导航条

class Home extends StatelessWidget {
  Widget _itemForRow; //下划线包里私有

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(
            '123',
            textDirection: TextDirection.ltr,
          ),
        ),
        body: Center(
          child: Text(
            'Hello Flutter',
            style: TextStyle(
                fontSize: 40, color: Colors.red, fontWeight: FontWeight.bold),
          ),
        ),
      ),
    );
  }
}

MaterialApp 存放小控件
MaterialApp 出来的页面由上角会带 DEBUG 字样

MaterialApp 的构造方法中的每一个参数都是可以省略的,但是官方还是要求[home] ,[routes][onGenerateRoute]这三个参数至少要填写一个。如果只给出路由,则必须包含Navigator.defaultRouteName(/)条目,因为当应用程序以指定不受支持的路由的意图启动时,将使用该条目。

也可以如下这样写,把 MaterialApp 写到 main 函数中

import 'package:flutter/material.dart';

void main() {
   runApp(new MaterialApp(home: MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Flutter Demo"),
      ),
      body: Center(
        child: Text('Hello Flutter'),
      ),
    );
  }
}
  • appBar 是导航条
  • body 是内容

 

2.5.1、修改主题颜色

home: Scaffold(…),
theme: ThemeData(
  primaryColor: Colors.red,
),

theme 是主题,可以设置主题颜色


如上这样设置的话导航条就变成了红色,但是这个不是只修改导航栏的颜色,而是用到主题色的地方都会修改掉。所以如果只是修改导航栏颜色,不建议这样改。
建议使用如下的形式,直接修改导航栏的背景色

appBar: AppBar(
  backgroundColor: WeChatThemColor,
)

 

如有不对还望指正,共同进步。谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Flutter是Google开源的一款跨平台的UI开发框架,可以快速地构建高质量的移动、Web和桌面应用程序。而Embedded Linux是指Linux操作系统在嵌入式设备中的应用。通过将Flutter与Embedded Linux结合起来,可以让开发者在嵌入式设备上创建漂亮且功能强大的应用程序。 Flutter的跨平台特性使得开发者可以使用相同的代码库在多个平台上运行应用程序,包括嵌入式设备。嵌入式设备通常资源有限,但Flutter的轻量级和高性能使得它非常适合在此类设备上运行。Flutter的热重载功能可以让开发者快速迭代和测试应用程序,提高开发效率。 使用Flutter-Embedded Linux,开发者可以利用Flutter的丰富的UI组件和强大的渲染引擎来创建嵌入式设备上的用户界面。Flutter提供了丰富的UI件和动画效果,可以实现各种视觉效果和交互体验。Flutter还具备良好的跨平台兼容性和高度定制性,可以适应不同嵌入式设备的各种需求。 除此之外,Flutter-Embedded Linux还提供了与Linux操作系统的良好集成,可以调用底层系统资源和API,如文件系统、网络接口等。这使得开发者可以通过Flutter在嵌入式设备上实现更强大的功能,例如与传感器的交互、与云服务的连接等。 总而言之,Flutter-Embedded Linux是一个强大的开发工具,可以帮助开发者在嵌入式设备中创建高质量的应用程序。它结合了Flutter的跨平台特性和Embedded Linux的优势,为开发者提供了更灵活、高效的开发环境。无论是工业制、智能家居还是其他嵌入式应用,Flutter-Embedded Linux都能提供良好的开发体验和用户体验。 ### 回答2: Flutter-embedded-linux是指在嵌入式Linux平台上使用Flutter框架进行应用开发的一种技术方案。嵌入式Linux是指在资源有限的嵌入式设备上运行Linux操作系统的系统;而Flutter是一种跨平台的移动应用开发框架,可以同时在Android和iOS上运行。 使用Flutter-embedded-linux可以让开发者在嵌入式Linux平台上开发出跨平台的应用。这样一来,开发者不再需要针对不同的平台编写不同的代码,大大提高了开发效率。同时,Flutter的高性能和优秀的用户体验也被保留在嵌入式设备上。 在使用Flutter-embedded-linux时,开发者需要在嵌入式Linux平台上搭建Flutter的开发环境,包括安装Flutter SDK、配置相关的依赖库等。然后,可以使用Flutter提供的开发工具和API进行应用的开发和调试。 Flutter-embedded-linux可以应用于很多领域,例如智能家居、智能工业设备、嵌入式系统等。开发者可以利用Flutter-embedded-linux开发各种类型的应用,如物联网设备制应用、工业监系统、嵌入式音视频播放器等。 需要注意的是,由于嵌入式Linux平台的资源限制,开发者在使用Flutter-embedded-linux时需要特别关注应用的性能和资源消耗情况,避免出现过多的资源占用或性能瓶颈。 总之,Flutter-embedded-linux为开发者在嵌入式Linux平台上开发跨平台应用提供了一种方便、高效、高性能的技术方案,有望在嵌入式设备领域得到广泛应用。 ### 回答3: Flutter-Embedded-Linux是一种使用Flutter框架进行嵌入式开发的技术方案。Flutter是一种跨平台的开源UI框架,可以快速构建高性能、精美的应用程序。而Embedded-Linux则是嵌入式设备常用的操作系统。 通过将Flutter应用程序集成到Linux嵌入式系统中,可以在嵌入式设备上实现高效、流畅和美观的用户界面。Flutter的特点是能够在不同平台上保持一致的用户体验,因此在嵌入式系统上也能够实现类似于移动设备和桌面系统上的应用程序。 使用Flutter-Embedded-Linux进行嵌入式开发有一些优势。首先,Flutter具有快速构建UI界面的能力,可以节省开发时间。其次,Flutter对于动画和渲染效果的支持非常好,可以在嵌入式设备上实现更加流畅和绚丽的动画效果。此外,Flutter还支持热重载功能,可以实时更新应用程序而无需重新启动,极大地提高了开发效率。 然而,使用Flutter-Embedded-Linux也存在一些挑战。嵌入式设备通常资源有限,对占用内存和CPU的要求较高,需要对Flutter应用程序进行优化以提高性能。另外,由于Flutter是基于Dart语言开发的,需要事先熟悉Dart开发语言和Flutter框架的使用。 总之,Flutter-Embedded-Linux是一种用于嵌入式开发的技术方案,可以帮助开发者快速构建高品质的应用程序界面。它在嵌入式设备上的应用可以提供与移动设备和桌面系统相媲美的用户体验。但是,开发者需要注意对资源的合理利用和性能的优化,以确保应用程序在嵌入式设备上能够运行流畅。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值