Flutter实用工具集合插件fluttils的使用
Flutter实用工具集合插件fluttils的使用
fluttils
是一个帮助你在应用程序中编写更少代码的包。它通过选择一些常用的设计模式并将它们提取到新的类或函数中,避免你每次开发新应用时都必须自己创建这些模式。
示例
使用 BuildContext
扩展方法
void _(BuildContext context, Widget widget) {
// fluttils:
// flutter:
context.pop(); // 等同于 Navigator.of(context).pop();
context.push(widget); // 等同于 Navigator.of(context).push(MaterialPageRoute((_) => widget));
context.push(widget, replace: true); // 等同于 Navigator.of(context).pushReplacement(MaterialPageRoute((_) => widget));
context.screenSize; // 等同于 MediaQuery.of(context).size;
}
使用带参数列表的 Text
import 'package:fluttils/fluttils.dart' as f;
void _(String label) {
// fluttils:
// flutter:
f.Text(label); // 等同于 Text(label);
f.Text(label, [Colors.red]); // 等同于 Text(label, style: TextStyle(color: Colors.red));
f.Text(label, [Colors.white, TextAlign.center, FontWeight.bold]); // 等同于 Text(label, style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), textAlign: TextAlign.center);
}
使用简化版 Padding
小部件
import 'package:fluttils/fluttils.dart' as f;
void _(Widget widget) {
// fluttils:
// flutter:
f.Padding(all: 5, child: widget); // 等同于 Padding(padding: EdgeInsets.all(5), child: widget);
f.Padding(height: 1, width: 3, child: widget); // 等同于 Padding(padding: EdgeInsets.symmetric(vertical: 1, horizontal: 3), child: widget);
f.Padding(all: 4, left: 2, child: widget); // 等同于 Padding(padding: EdgeInsets.only(left: 2, right: 4, top: 4, bottom: 4), child: widget);
f.Padding(all: 10, left: 15, height: 20, child: widget); // 等同于 Padding(padding: EdgeInsets.only(left: 15, right: 10, top: 20, bottom: 20), child: widget);
}
使用 MapStack
作为 Stack
的替代品
import 'package:fluttils/fluttils.dart' as f;
void _() {
// fluttils:
// flutter:
f.MapStack({Alignment.center: Text("a")}); // 等同于 Stack(children: [Align(alignment: Alignment.center, child: Text("a"))]);
f.MapStack({
Alignment.topLeft: Icon(Icons.right_arrow),
Alignment.bottomRight: Icon(Icons.add),
}); // 等同于 Stack(children: [
// Align(alignment: Alignment.topLeft, child: Icon(Icons.right_arrow)),
// Align(alignment: Alignment.bottomRight, child: Icon(Icons.add)),
// ]);
}
使用配置更简单的 Visibility
小部件
import 'package:fluttils/fluttils.dart' as f;
void _(Widget widget) {
f.Visibility(visible: false, child: widget); // 等同于 Visibility(visible: false, child: widget);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.state()); // 等同于 Visibility(visible: false, child: widget, maintainState: true);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.animation()); // 等同于 Visibility(visible: false, child: widget, maintainState: true, maintainAnimation: true);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.size()); // 等同于 Visibility(visible: false, child: widget, maintainState: true, maintainAnimation: true, maintainSize: true);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.size(maintainSemantics: true)); // 等同于 Visibility(visible: false, child: widget, maintainState: true, maintainAnimation: true, maintainSize: true, maintainSemantics: true);
}
更多关于Flutter实用工具集合插件fluttils的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复