class _HomePAgeSliderState extends State<HomePageSlider> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return CustomAnimatedToggleSwitch<bool>(
current: tripStart,
values: [false, true],
dif: double.maxFinite,
// left right 3
padding: const EdgeInsets.symmetric(horizontal: 3.0),
indicatorSize: const Size.square(42.0),
animationDuration: const Duration(milliseconds: 200),
animationCurve: Curves.linear,
onChanged: (b) => setState(() => tripStart = b),
// Container for The Another Side Not in used
iconBuilder: (context, local, global) {
return const SizedBox();
},
defaultCursor: SystemMouseCursors.click,
onTap: () => setState(() => tripStart = !tripStart),
iconsTappable: false,
// container for the Switch Button
foregroundIndicatorBuilder: (context, global) {
return SizedBox.fromSize(
size: global.indicatorSize,
child: DecoratedBox(
decoration: BoxDecoration(
color: Colors.white,
//Color.lerp(Colors.white, Colors.blue, global.position),
borderRadius: BorderRadius.all(Radius.circular(24.0)),
),
child: AnimatedContainer(
// top 5 left 5 bottom 5 right 6
padding: const EdgeInsets.fromLTRB(5.0, 5.0, 6.0, 5.0),
duration: const Duration(milliseconds: 200),
child: Icon(
tripStart ? Icons.close : Icons.arrow_forward_ios,
color: Color.lerp(Colors.blue, Colors.black, global.position),
),
)),
);
},
// container for the slider
wrapperBuilder: (context, global, child) {
return Stack(
alignment: Alignment.center,
children: [
Positioned(
left: 0.0,
right: 0.0,
height: 48,
child: DecoratedBox(
decoration: BoxDecoration(
gradient: tripStart
? SPAColor.getGradientColor(['FFFFFF', '222222'])
: SPAColorSet.PrimaryGradient.gradient,
// color: Color.lerp(SPAColor.getColorFromHex('2A7DDE'),
// SPAColor.getColorFromHex('5FCFFF'), global.position),
borderRadius: const BorderRadius.all(Radius.circular(24.0)),
),
)),
child,
Container(
// padding right 56 left 24 top bottom 10
padding: tripStart
? const EdgeInsets.fromLTRB(24.0, 10.0, 56.0, 10.0)
: const EdgeInsets.fromLTRB(56.0, 10.0, 24.0, 10.0),
child: Text(
tripStart ? '截車中' : '立即Call車',
style: TextStyle(
color: Colors.white,
//Color.lerp(Colors.black, Colors.white, global.position),
fontSize: 16.0,
fontFamily: 'NotoSansHK',
fontWeight: FontWeight.w600,
),
),
)
],
);
},
);