123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import 'package:eitc_erm_dental_flutter/exts.dart';
- import 'package:flutter/material.dart';
- ///主要按钮
- class MainButton extends StatelessWidget {
- final void Function() onPressed;
- final String text;
- final bool isOutlined;
- final EdgeInsets? buttonPadding;
- final Size? minimumSize;
- final Size? maximumSize;
- final bool fitMinimumSize;
- final OutlinedBorder? shape;
- const MainButton(
- {super.key,
- required this.text,
- required this.onPressed,
- this.buttonPadding,
- this.minimumSize,
- this.maximumSize,
- this.isOutlined = false,
- this.fitMinimumSize = false,
- this.shape});
- @override
- Widget build(BuildContext context) {
- return isOutlined
- ? OutlinedButton(
- onPressed: onPressed,
- style: ButtonStyle(
- tapTargetSize:
- fitMinimumSize ? MaterialTapTargetSize.shrinkWrap : null,
- padding: buttonPadding == null
- ? null
- : WidgetStatePropertyAll(buttonPadding),
- minimumSize: minimumSize == null
- ? null
- : WidgetStatePropertyAll(minimumSize),
- maximumSize: maximumSize == null
- ? null
- : WidgetStatePropertyAll(maximumSize),
- side: WidgetStatePropertyAll(
- BorderSide(color: Color(0xFFD2D2D2))),
- shape: shape == null ? null : WidgetStatePropertyAll(shape)),
- child: Text(
- text,
- style: TextStyle(color: context.onSurfaceColor),
- ))
- : ElevatedButton(
- onPressed: onPressed,
- style: ButtonStyle(
- tapTargetSize:
- fitMinimumSize ? MaterialTapTargetSize.shrinkWrap : null,
- padding: buttonPadding == null
- ? null
- : WidgetStatePropertyAll(buttonPadding),
- backgroundColor: WidgetStatePropertyAll(context.primaryColor),
- minimumSize: minimumSize == null
- ? null
- : WidgetStatePropertyAll(minimumSize),
- maximumSize: maximumSize == null
- ? null
- : WidgetStatePropertyAll(maximumSize),
- elevation: const WidgetStatePropertyAll(0.0),
- shape: shape == null ? null : WidgetStatePropertyAll(shape)),
- child: Text(
- text,
- textAlign: TextAlign.center,
- style: TextStyle(
- color: context.onPrimaryColor, fontWeight: FontWeight.bold),
- ));
- }
- }
|