Files
tuiche/lib/component/tool/ToggleColorContainer.dart
2025-05-20 14:00:44 +08:00

48 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
class ToggleColorContainer extends StatelessWidget {
final Color initialColor;
final Color toggledColor;
final EdgeInsetsGeometry padding;
final Widget child;
final double borderRadius;
final VoidCallback onToggle;
final bool toggled; // 新增,外部传入是否高亮
const ToggleColorContainer({
Key? key,
required this.initialColor,
required this.toggledColor,
required this.padding,
required this.child,
required this.onToggle,
required this.toggled,
this.borderRadius = 0,
}) : super(key: key);
@override
Widget build(BuildContext context) {
final Color currentColor = toggled ? toggledColor : initialColor;
return Material(
color: Colors.transparent,
child: Ink(
decoration: BoxDecoration(
color: currentColor,
borderRadius: BorderRadius.circular(borderRadius),
),
child: InkWell(
borderRadius: BorderRadius.circular(borderRadius),
onTap: onToggle,
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
child: Padding(
padding: padding,
child: child,
),
),
),
);
}
}