刮刮乐
刮刮卡小部件,可暂时隐藏用户内容。

功能
- Android和iOS支持
- 用纯色或自定义图片覆盖内容
- 跟踪刮擦进度和阈值
- 完全可配置
入门
- 您需要做的第一件事是将刮刮乐添加为
pubspec.yaml中的项目依赖项
dependencies:
scratcher: "^2.1.0"
- 现在您可以通过运行
flutter pub get或通过代码编辑器进行安装。
设置
- 导入库
import 'package:scratcher/scratcher.dart';
- 用刮刮卡覆盖所需的控件
Scratcher(
brushSize: 30,
threshold: 50,
color: Colors.red,
onChange: (value) => print("Scratch progress: $value%"),
onThreshold: () => print("Threshold reached, you won!"),
child: Container(
height: 300,
width: 300,
color: Colors.blue,
),
)
属性
| 属性 | 类型 | 描述 |
|---|---|---|
| child | Widget | 在刮擦区域下渲染的控件。 |
| enabled | 布尔值 | 是否可以应用新的刮擦。 |
| threshold | 双精度 | 要揭示以完成的刮擦区域的百分比级别。 |
| brushSize | 双精度 | 画笔大小。越大,用户刮擦卡的速度越快。 |
| accuracy | ScratchAccuracy | 确定进度的报告准确性。较低的准确性意味着更高的性能。 |
| color | 颜色 | 用于覆盖子控件的颜色。 |
| image | Image | 用于覆盖子控件的图片控件。 |
| rebuildOnResize | 布尔值 | 确定刮刮乐在空间约束发生变化(调整大小)时是否应重新构建自身。 |
| onChange | 功能 | 当新的区域被揭示时调用的回调(最小差异为0.1%)。 |
| onThreshold | 功能 | 达到阈值时调用的回调(仅在定义时)。 |
| onScratchStart | 功能 | 开始刮擦时调用的回调。 |
| onScratchUpdate | 功能 | 刮擦过程中调用的回调。 |
| onScratchEnd | 功能 | 刮擦结束时调用的回调。 |
程序化访问
您可以通过将GlobalKey分配给控件来以编程方式控制刮刮乐。
final scratchKey = GlobalKey<ScratcherState>();
Scratcher(
key: scratchKey,
// remaining properties
)
分配密钥后,您可以调用任何公开的方法,例如:
RaisedButton(
child: const Text('Reset'),
onPressed: () {
scratchKey.currentState.reset(duration: Duration(milliseconds: 2000));
},
);
| 方法 | 描述 |
|---|---|
| reset | 将刮刮乐状态重置为初始值。 |
| reveal | 揭示整个刮刮乐,因此只显示原始子控件。 |
示例项目
example文件夹中有一个很棒的示例项目。查看它以了解大多数可用选项。