简单的试了一下,完全用flutter现有的widget进行开发。github上面有说现在是preview版本,有些widget还不能用。但是最终是会支持整个的flutter现有的UI的。
跟用flutter开发原生app一样。flutter_web还有很长的一段路要走。希望年底能出个像样的版本。
不支持第三方库说明
目前pub.dartlang.org上的库如果引用了 flutter/material.dart, flutter/cupertinote.dart 等UI相关的库,在web里面都不能使用,因为目前flutter_web用到的widget有一个自己的命名空间。但是官方是说最终会合到flutter时面去。
之前写的代码全部用了flutter_redux. 目前在flutter_web里面就不能直接用了。要等flutter更新。
环境要求
要运行flutter_web要进行一些环境设置
- flutter版本:要用dev分支,且版本要在v1.5.4以上。如果还没有升级的话 flutter upgrade升级一下,flutter channel dev切换到dev分支。
flutter channel 查看当前分支
clone flutter_web到本地
安装webdev
pub global activate webdev
or
flutter packages pub global activate webdev</pre>
- 确保
$HOME/.pub-cache/bin
这个环境变量存在
运行demo
- 进入demo目录
$ cd flutter_web/examples/hello_word
- 更新依赖
$ flutter packages upgrade 或者 pub get
- 运行本地web
$ webdev serve
出现Serving
webon [http://localhost:8080
](http://localhost:8080`) 后就可以打开浏览器查看了。
上个简单的效果图:
企业微信截图_e751731e-ec91-4b6c-af0e-8fa718a742e5.png
代码简单如下:
import 'package:flutter_web/material.dart';
void main() {
runApp(new App());
}
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: test2());
}
Widget test2() {
return Column(
children: <Widget>[
createItem(),
createItem(),
createItem(),
createItem(),
createItem(),
createItem(),
createItem(),
createItem(),
],
);
}
Widget createItem() {
return Container(
margin: const EdgeInsets.only(top: 10.0),
height: 80.0,
width: 300.0,
color: Color(0xff00ff00),
child: Center(
child: Text(
'这是一个列表',
textDirection: TextDirection.ltr,
),
),
);
}
}
本文转自 https://www.jianshu.com/p/6d1028e86bda,如有侵权,请联系删除。