内容简介:前面学习了一些Dart的基础,有了这些我们就可以来尝试使用Flutter了,这里介绍一下环境的配置与部分常用的基础组件。Flutter的环境搭建起来很简单,去到Flutter官网查看一般都没问题,我这里简单介绍一下 mac 下 Flutter 环境的搭建。这样我这边的环境就搭建好了,直接运行就能看到效果~
前面学习了一些Dart的基础,有了这些我们就可以来尝试使用Flutter了,这里介绍一下环境的配置与部分常用的基础组件。
环境搭建
Flutter的环境搭建起来很简单,去到Flutter官网查看一般都没问题,我这里简单介绍一下 mac 下 Flutter 环境的搭建。
- 安装 Java SDK,配置环境变量,因为我们这里要先搭建 Android 开发环境;
- 安装 Android Studio,安装 SDK,然后安装 Flutter 插件(可能需要自备梯子);
- 安装 Visual Studio Code,然后安装 Flutter 插件,由于 Android Studio 太重了,打开之后内存暴增, 我这里还是选择了更轻量级并且这两年很火爆的编辑器 VS Code;
- 在 Flutter 官网下载最新的 mac 版 Flutter SDK 压缩包,解压到某个路径;
- 配置环境变量,我们国内的网络,除了配置 Flutter 的环境变量,还需要配置其他的,你懂的,下面我列出来:
# flutter环境变量 vim ~/.bash_profile export PATH="$PATH:/flutter/bin" # 国内用户需要配置 export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn # 启用环境变量 source ~/.bash_profile # 检查环境配置 flutter doctor # 一般初次配置的话会提示缺的依赖,我这里需要执行下面的命令 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew update brew install cocoapods pod setup # 如果这里执行不动可以看我前面的文章呢 brew install ideviceinstaller brew install ios-deploy brew install --HEAD usbmuxd brew link usbmuxd brew install --HEAD libimobiledevice flutter doctor --android-licenses # 安装Android证书,一路yes # 创建项目,项目名称只能是小写 flutter create project_name # 运行项目 flutter run -d <deviceId> #r 键:点击后热加载,也就算是重新加载吧。 #p 键:显示网格,这个可以很好的掌握布局情况,工作中很有用。 #o 键:切换android和ios的预览模式。 #q 键:退出调试预览模式。
这样我这边的环境就搭建好了,直接运行就能看到效果~
说在组件前面
-
在介绍组件之前我们先看几个东西:
- 在 Dart 里一切都是对象,哪怕是一个方法也可以赋值给一个变量,所以都是对象;
- Widget : Flutter 里面的组件都是 Widget,所以写法其实都差不多;
- package : 导入其他文件相当于导入包,因为默认把文件当成包,使用 import 导入。
- 先明确一下:
使用 VS Code打开项目,能够看到有一个 lib 目录,打开此目录下的 main.dart 文件,可以看到一个 main 方法,看过之前的 Dart 学习就知道这是项目的入口,我们删除里面的内容,然后在 lib 同级目录下创建 basic 文件夹,并在里面创建 任意 dart 文件,我们之后的代码都写在这里,而 main.dart 中只作为入口引入该文件,也就是里面只有一行代码。
main() => runApp(ClassName());
常用基础组件
-
TextWidget 文本组件,所带的属性其实很像前端,可以查看一下文档
- TextAlign属性
- maxLines属性
- overflow属性
- style属性
class MyTestApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Text Widget', home: Scaffold( appBar: AppBar( title: Text('Button'), ), body: Center( child: Text( 'fadflajflajfljalfjaljfjfaslfdafmaldfmalmflamsfljljflsjlnvx,mvnz,nvc,aldfjlajfljsaflsjlfjsalfj', textAlign: TextAlign.left, maxLines: 2, ), ), ) ); } }
-
Button 按钮, 用法差不多
- RaisedButton “漂浮”按钮,自带阴影
- FlatButton 扁平按钮
- OutlineButton 有边框
- IconButton 可点击的Icon,不包括文字
class MyTestApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Button', home: Scaffold( appBar: AppBar( title: Text('Button'), ), body: Center( child: RaisedButton( child: Text('Button'), onPressed: () => { //点击事件 }, ), ), ) ); } }
-
ImageWidget 图片
- Image.network() 从网络加载
- Image.asset() 从本地资源中加载,但是添加资源后需要配置 pubspec.yaml
- fit: BoxFit.fill, //图片填充形式
- color
- colorBlendMode: BlendMode.modulate, //颜色混合模式,结合颜色来用
- repeat: ImageRepeat.repeat, //类似于css中的图片重复
class MyTestApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Container Widget', home: Scaffold( body: Center( child: Container( child: Image.network( 'https://blog.duicode.com/wp-content/uploads/2017/09/%E5%B7%A5%E5%85%B7.jpg', // fit: BoxFit.fill, //图片填充 // color: Colors.greenAccent, // colorBlendMode: BlendMode.modulate, //颜色混合模式,结合颜色来用 repeat: ImageRepeat.repeat, ), width: 300, height: 200, color: Colors.lightBlue, ), ) ), ); } }
-
TextField 输入框
- autofocus 是否自动获取焦点。
- InputDecoration 用于控制TextField的外观显示,如提示文本、背景颜色、边框等。
class MyTestApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Button', home: Scaffold( appBar: AppBar( title: Text('Button'), ), body: Center( child: TextField( autofocus: true, decoration: InputDecoration( labelText: "用户名", hintText: "用户名或邮箱", prefixIcon: Icon(Icons.person) ), ), ), ) ); } }
-
其他的一些常用的东西
- Icons 图标集合,集成了很多图标
- Colors 颜色集合
- Flutter 中的 居中/居左/居右 还是比较坑的,各种名字,不过总体来说还好了~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 降低云游戏延迟优化云游戏体验:贝塞斯达推出Orion技术,还公布了免费体验计划
- PyTorch 初体验
- indexedDB 初体验
- golang爬虫初体验
- Netty 入门初体验
- Ansible初体验
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript语言精粹
道格拉斯•克罗克福德 (Douglas Crockford) / 赵泽欣、鄢学鹍 / 电子工业出版社 / 2012-9-1 / 49.00元
JavaScript 曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax 的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,也证明了它其实是一门优秀的语言。Douglas Crockford 在本书中剥开了JavaScript 沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript 子集,让你看......一起来看看 《JavaScript语言精粹》 这本书的介绍吧!