button_select.dart 1.2 KB

123456789101112131415161718192021222324252627282930
  1. import 'package:flutter/material.dart';
  2. import 'package:naiyouwl/app/utils/utils.dart';
  3. import 'package:styled_widget/styled_widget.dart';
  4. class ButtonSelect extends StatelessWidget {
  5. const ButtonSelect({Key? key, required this.labels, this.value = 0, this.onSelect}) : super(key: key);
  6. final List<String> labels;
  7. final int value;
  8. final void Function(int idx)? onSelect;
  9. @override
  10. Widget build(BuildContext context) {
  11. return Row(
  12. mainAxisAlignment: MainAxisAlignment.center,
  13. children: List.generate(
  14. labels.length,
  15. ((idx) => TextButton(
  16. onPressed: onSelect?.bindOne(idx),
  17. child: Text(labels[idx]).textColor(value == idx ? Colors.white : const Color(0xff54759a)).fontSize(12),
  18. ).decorated(
  19. color: idx == value ? Theme.of(context).primaryColor : Colors.white,
  20. border: idx == value ? null : Border.all(color: const Color(0xffe4eaef), width: 1),
  21. borderRadius: BorderRadius.horizontal(
  22. left: idx == 0 ? const Radius.circular(4) : Radius.zero,
  23. right: idx == labels.length - 1 ? const Radius.circular(4) : Radius.zero,
  24. ),
  25. )),
  26. ),
  27. );
  28. }
  29. }