这是一个提供简单轮盘小部件的库,通常用于彩票。

功能

  • 快速构建轮盘

  • 根据权重构建具有不同部分的轮盘

  • 轻松控制滚动动画和停止位置

  • 此包提供两种类型的轮盘

    • 无文本的均匀轮盘
      Uniform with no text

    • 带文本的加权轮盘
      Weight based with text

入门

用法

构建一个轮盘小部件

首先,您需要创建一个RouletteController实例。

RouletteController(
  group: RouletteGroup([
    RouletteUnit.noText(color: Colors.red),
    RouletteUnit.noText(color: Colors.green),
    // ...other units
  ]),
  vsync: this // provide a TickerProvider here
);

一旦有了控制器,您就可以将Roulette小部件添加到您的微件树中

@override
Widget build(BuildContext context) {
  return Roulette(
    controller: controller, // provide your controller here
    style: RouletteStyle(
      // config the roulette's appearance here
    ),
  );
}

运行轮盘

使用roll方法在您需要的地方运行轮盘。

ElevatedButton(
  onPressed: () => controller.rollTo(2), // provide the index you want to settle
  child: const Text('Roll!'),
);

您可以等待rollTo方法的完成,然后执行其他操作。

rollTo方法提供了许多选项供您控制滚动行为。请参阅文档了解更多信息。

有关详细的使用示例,请参阅示例。

GitHub

查看 Github