e8ed8a79b1e4c2276b3d16a4d27399cd.png

此动画效果是我在浏览文章时发现的一个非常酷炫的效果,于是就使用 Flutter 实现了。 更多动画效果及Flutter资源:https://github.com/781238222/flutter-do

e04a2aa15be45e791dace83720e88040.png

添加依赖

在项目的 pubspec.yaml 文件中添加依赖:

dependencies:
    wheel_switch: ^0.0.1

执行命令:

flutter pub get

使用

WheelSwitch(
  value: false,
)

8bf26ce09384a07c9cdc54c7d39bae99.png

组件默认的宽高分别是80、30,也可以指定宽高:

WheelSwitch(
  value: false,
  width: 150,
  height: 50,
)

开关发生变化回调:

WheelSwitch(
  value: false,
  onChanged: (value){
    print('WheelSwitch : $value');
  },
)

设置其轨道颜色,分为激活(开)和未激活(关)状态的颜色:

WheelSwitch(
  value: false,
  width: 150,
  height: 50,
  activeTrackColor: Colors.red,
  inactiveTrackColor: Colors.green,
)

1b505dfbdb7c959be27dd8791a1bbe15.png

设置滑块的颜色:

WheelSwitch(
  value: false,
  width: 150,
  height: 50,
  activeTrackColor: Colors.red,
  inactiveTrackColor: Colors.green,
  activeThumbColor: Colors.blue,
  inactiveThumbColor: Colors.green,
)

未激活状态(关):

ff5151fb11ba74cf8f0ffb5d7d18adc7.png

激活状态(开):

8d2e755fb5ac3756a99a1802a8770d1c.png

设置文字和文字样式:

WheelSwitch(
  value: false,
  width: 150,
  height: 50,
  activeText: '开',
  inactiveText: '关',
  activeTextStyle: TextStyle(color: Colors.white,fontSize: 20),
  inactiveTextStyle: TextStyle(color: Colors.cyanAccent,fontSize: 10),
)

d2f8e07d97d9806ceab0a9443f584e11.png

交流

老孟Flutter博客(330个控件用法+实战入门系列文章):http://laomengit.com

欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐