feat: 整体常用控件封装,常用工具类。首页数据对接

This commit is contained in:
chengsiwen committed 2026-06-27 14:15:25 +08:00
1 parent d90d023e85
commit fbcd33ea2b
50 files changed
+4558 -264

No files matched your search

+13 -38
View File
@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
// 扩展Widget类以添加额外的布局和样式方法
extension WidgetExtend on Widget {
/// 在当前Widget外层添加一个Container
@@ -43,7 +42,8 @@ extension WidgetExtend on Widget {
padding: padding,
alignment: alignment,
clipBehavior: clipBehavior,
constraints: constraints ??
constraints:
constraints ??
BoxConstraints(
minWidth: minWidth ?? 0.0,
maxWidth: maxWidth ?? double.infinity,
@@ -59,8 +59,9 @@ extension WidgetExtend on Widget {
image: image,
gradient: gradient,
border: border,
borderRadius:
radius != null ? BorderRadius.circular(radius) : borderRadius,
borderRadius: radius != null
? BorderRadius.circular(radius)
: borderRadius,
),
child: this,
).addInkWell(onTap: onTap);
@@ -84,10 +85,7 @@ extension WidgetExtend on Widget {
///
/// 通过此方法可以设置控件的对齐方式
Widget addAlign({AlignmentGeometry alignment = Alignment.centerLeft}) {
return Align(
alignment: alignment,
child: this,
);
return Align(alignment: alignment, child: this);
}
Widget addCenter() {
@@ -118,20 +116,14 @@ extension WidgetExtend on Widget {
///
/// 通过此方法可以控制控件的显示和隐藏
Widget addVisibility({bool visible = true}) {
return Visibility(
visible: visible,
child: this,
);
return Visibility(visible: visible, child: this);
}
/// 在当前Widget外层添加一个Transform.rotate
///
/// 通过此方法可以设置控件的旋转角度
Widget addRotate({double angle = 0}) {
return Transform.rotate(
angle: angle,
child: this,
);
return Transform.rotate(angle: angle, child: this);
}
/// 在当前Widget外层添加一个InkWell
@@ -141,44 +133,27 @@ extension WidgetExtend on Widget {
if (onTap == null) {
return this;
}
return InkWell(
onTap: onTap,
child: this,
);
return InkWell(onTap: onTap, child: this);
}
/// 在当前Widget外层添加一个SizedBox
///
/// 通过此方法可以设置控件的宽高
Widget addSize({double? width, double? height}) {
return SizedBox(
width: width,
height: height,
child: this,
);
return SizedBox(width: width, height: height, child: this);
}
/// 在当前Widget外层添加一个Opacity
///
/// 通过此方法可以设置控件的透明度
Widget addOpacity({double opacity = 1}) {
return Opacity(
opacity: opacity,
child: this,
);
return Opacity(opacity: opacity, child: this);
}
}
extension OnRenderObjectWidget on RenderObjectWidget {
SliverPadding addPaddingSliver({EdgeInsets? padding}) {
return SliverPadding(
padding: padding ?? EdgeInsets.zero,
sliver: this,
);
return SliverPadding(padding: padding ?? EdgeInsets.zero, sliver: this);
}
DecoratedSliver addDecoratedSliver({
@@ -199,7 +174,7 @@ extension OnRenderObjectWidget on RenderObjectWidget {
gradient: gradient,
shape: shape ?? BoxShape.rectangle,
),
sliver: this.addPaddingSliver(padding: padding),
sliver: addPaddingSliver(padding: padding),
);
}
}