趁着这次被裁员找工作的空闲时间,刚好在撸Flutter 当然不是简单的hello world的,自己撸了一个小电商项目,当然还没有完全出来,
那应该也是对Flutter入门了,前提是要学会Dart哦!
(安装Flutter的博我以后再更新下)
哈哈哈哈 我学废了
先简单看下效果图 :(还是第一次学会用gif 工具 哈哈 )
我刚刚开始写Flutter的时候被这该死的嵌套有点懵逼 ,Container里有child, 在child里又有其他的什么row,
哇 真的其实蛮无奈的
widget在ui层面相当于原生的uiview,但是不仅仅局限于显示视图UIView,也有用于布局相关的。
基础 Widgets Container、Button、Row和Column、Text、Scaffold、Icon、Image、Stack、TabBar+TabBarView、Widget-输入框TextField 用于布局的 Widgets Align、Center、Expended、LayoutBuilder、Padding、Wrap 可滚动 Widgets CustomScrollView、GridView、ListView、PageView、SingleChildScrollView 装饰 Widgets BoxDecoration、Clip系列、Opacity、SafeArea、高斯模糊BackdropFilter
当然我用的是Xcode 写的 里面有代码修复功能和报错插件,
所有布局的控件都写到 Widget build(BuildContext context) { ... }
方法中,但是 但是控件需要用到是内容并且可能改变的,则使用一个变量记下来
class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); }
final String title;
就是声明了一个title的字符串。
或者
class _MyHomePageState extends State<MyHomePage> { int _counter = 0; ... }
控件写法与使用
AppBar( title: Text(widget.title), ), Text( ‘$_counter‘, style: Theme.of(context).textTheme.display1, ),
改变文本内容 setState
这是和原生最大的差别,需要改变文本的内容则需要使用setState中生效,告诉flutter这时候状态变化了,需要重新刷新。
例子中单击+
数字+1,可以看到界面上的数字立即更新了
void _incrementCounter() { setState(() { _counter++; }); }
值得注意的是,state频繁刷新也会带来性能问题
我目前只是对Flutter UI 基本组件,路由,点击事件对使用和理解编写,但是已经感觉到了无解的存在了,
虽然该死的嵌套 让人望而却步,但是 熟悉的组件开发还是那么的给力,就爱上了 哈哈哈
原文:https://www.cnblogs.com/yf-html/p/14032719.html