TiltProjectorContainer widget
了解 TiltBaseContainer widget 参数。TiltProjectorContainer widget 具备倾斜效果以及类似投影的阴影效果。
TiltProjectorContainer widget 只能在 Tilt widget 中使用。
对整个 child、childLayout 使用类似投影仪效果的阴影,
它会显示与 widget 非透明部分完全一致的阴影。
存在性能风险
建议在以下场景使用:
- 仅图片
- 无数据状态
- 无 Hero 标签
你应该自行评估性能风险, 如果你应用的场景运行流畅,则可继续使用。
简单用法
...
final childLayout = ChildLayout(
outer: [
TiltParallax(
offset: Offset(20, 20),
child: Image.asset(
'assets/demo1.png',
width: xxx,
height: xxx,
),
),
TiltParallax(
offset: Offset(30, 30),
child: Image.asset(
'assets/demo2.png',
width: xxx,
height: xxx,
),
),
],
);
...
/// 搭配 TiltProjectorContainer 为 Tilt 实现效果。
Tilt(
child: TiltProjectorContainer(
childLayout: childLayout,
child: SizedBox(width: 150, height: 300),
),
),
/// Tilt 内置 Tilt.projector 实现效果。
/// Tilt.projector 是一个便捷的 widget,它由 Tilt 和 TiltProjectorContainer 组合而成。
Tilt.projector(
childLayout: childLayout,
child: SizedBox(width: 150, height: 300),
),
...
TiltProjectorContainer widget 参数
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
child required | Widget | - | 主要 child widget,倾斜和各种效果将应用于该 widget。 |
| childLayout | ChildLayout | ChildLayout() | 其它 child 布局。 例如:位于 child 外部、内部、后面的视差布局。 |
| shadowConfig | ShadowProjectorConfig | ShadowProjectorConfig() | 阴影效果配置。 |
| border | BoxBorder? | null | BoxDecoration border。 |
| borderRadius | BorderRadiusGeometry? | null | BoxDecoration borderRadius。 |
| clipBehavior | Clip | Clip.antiAlias | 容器的裁剪表现。 |
| filterQuality | FilterQuality? | null | Transform 的质量。 |
ChildLayout
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| outer | List<Widget> | <Widget>[] | 与 Stack 一样,你可以使用 Stack 布局来创建一些位于 child 外部 的 widget。 例如:视差效果。 |
| inner | List<Widget> | <Widget>[] | 与 Stack 一样,你可以使用 Stack 布局来创建一些位于 child 内部 的 widget。 例如:视差效果。 |
| behind | List<Widget> | <Widget>[] | 与 Stack 一样,你可以使用 Stack 布局来创建一些位于 child 后面 的 widget。 例如:视差效果。 |
ShadowProjectorConfig
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| disable | bool | false | 仅禁用阴影效果。 |
| color | Color | Color(0xFF9E9E9E) | 阴影颜色。 |
| minIntensity | double | 0.0 | 颜色最小不透明度,也是初始不透明度。 |
| maxIntensity | double | 0.5 | 颜色最大不透明度,跟随倾斜最大进度。 |
| offsetInitial | Offset | Offset(0.0, 0.0) | 阴影偏移初始值。 例如:(0.0, 0.0) 中心 (40.0, 40.0) 向左上角偏移 40。 |
| offsetFactor | double | 0.1 | 阴影偏移系数,相对于当前 widget 尺寸。 |
| direction | ShadowDirection? | null | 阴影方向。 |
| enableReverse | bool? | null | 反转阴影方向。 |
| projectorScaleFrom | double | 1.0 | 最小倾斜进度的阴影尺寸比例,也是初始尺寸比例。 |
| projectorScaleTo | double | 1.0 | 最大倾斜进度的阴影尺寸比例。 |
| projectorBlurSigmaFrom | double | 5.0 | 最小倾斜进度的阴影模糊 Sigma,也是初始模糊 Sigma。 |
| projectorBlurSigmaTo | double | 10.0 | 最大倾斜进度的阴影模糊 Sigma。 |