目录
总结flutter开发中遇到的问题,持续更新中...
RichText(text: TextSpan(
children: [
TextSpan(
text:"*",
style: TextStyle(color: JCColor.colorAuxRedColor, fontSize: 15)
),
TextSpan(
text:"费用归属",
style: TextStyle(color: JCColor.colorText222Color, fontSize: 15)
)
]
)),
enum MainAxisAlignment {
//将子控件放在主轴的开始位置
start,
//将子控件放在主轴的结束位置
end,
//将子控件放在主轴的中间位置
center,
//将主轴空白位置进行均分,排列子元素,手尾没有空隙
spaceBetween,
//将主轴空白区域均分,使中间各个子控件间距相等,首尾子控件间距为中间子控件间距的一半
spaceAround,
//将主轴空白区域均分,使各个子控件间距相等
spaceEvenly,
}
listview嵌套listview
child: ListView.separated(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(), //list嵌套listview
itemCount: logic.architectureList?.length ?? 0,
itemBuilder: (context, index) =>
_buildItem(logic.architectureList?[index]),
separatorBuilder: (context, index) => Divider(height: .0),
));
ListView.separated 有分割线
Visibility(
visible: true,
//是否保持占位
maintainState: false,
child: Text("显示"),
),
弹窗
showModalBottomSheet(
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16))),
context: context,
builder: (BuildContext context) {
return AirTicketRuleDialog();
});
Row(children: [
const SizedBox(width: 32),
Expanded(
child: Text(
'退改行李规定',
textAlign: TextAlign.center,
),
InkWell( ]),
在使用Flutter动画的时候,我们通常使用这几个组件. AnimationController,控制动画的抽象类 Animation,给定值,转换为动画 Tween, 执行范围 AnimatedBuilder, 处理动画的Widget Transform控件可以将动画执行中的变量值处理反馈在子控件上. https://github.com/dlgchg/animations_flutter
位置可选参数,只需要将可选参数放入中括号即可,例子如下; func_text(a, [b = 4]) { } 匿名函数 var a = (b,c){ return b + c; }; //一般构造方法的书写格式 Person(this.name,this.age);
freezed 1.1.0 深度拷贝,语法扩充
Get.off() 导航到下一个页面并删除前一个页面 Get.offAll() 导航到下一个页面并删除以前所有的页面
多构造函数
class FeeDetails {
FeeDetails(this.title, this.content);
FeeDetails.three(this.title,this.content,this.describe);
String? content;
String? describe;
String? title;
}
.then()的用法
Future.wait([
// 2秒后返回结果
Future.delayed(new Duration(seconds: 2), () {
return "hello";
}),
// 4秒后返回结果
Future.delayed(new Duration(seconds: 4), () {
return " world";
})]).then((results){
print(results[0]+results[1]);}).catchError((e){
print(e);});
expenand 必须和colum或row一起用,否则debug能运行,release报错。 flutter run --release 这样运行,正式版也可以看日志
dio抓包
dio = Dio(options);
(dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.findProxy = (uri) {
return 'PROXY 172.16.60.122:8888';
};
};
打开页面,把这个页面前面的页面都关掉 类似singleTop,启动页面需要指定路由名字 Get.to(() => MineAddAccountPage( ),routeName: ‘name’); 然后关闭 Navigator.of(context).popUntil(ModalRoute.withName('/route-name')); 普通路由 :直接跳转页面 命名路由:给路由起名字Navigator.of(context).pushNamed("/search");
通知栏高度 final dynamic padding = MediaQuery.of(context).padding; padding: EdgeInsets.only(top: padding.top),
cancelTap 传接口时不要当成方法,没有括号(),要不然直接调用
防止tab每次都刷新 AutomaticKeepAliveClientMixin
两个好用的图片插件 FlutterQuickLocateAsset FlutterAssetAutoCompletion
使用‘尾随逗号’ Flutter代码通常涉及构建相当深的树状数据结构,例如在一个build方法中。 为了获得良好的自动格式化,我们建议您采用可选的尾部逗号。添加尾随逗号很简单:始终在函数、方法和构造函数的参数列表末尾添加尾随逗号,以便保留您的编码格式。 这将有助于自动格式化程序为Flutter样式代码插入适当的换行符。
使用自定义模板,提高开发效率
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有