12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- 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: Theme.of(context).colorScheme.onSurface),
- ))
- : ElevatedButton(
- onPressed: onPressed,
- style: ButtonStyle(
- tapTargetSize:
- fitMinimumSize ? MaterialTapTargetSize.shrinkWrap : null,
- padding: buttonPadding == null
- ? null
- : WidgetStatePropertyAll(buttonPadding),
- backgroundColor:
- WidgetStatePropertyAll(Theme.of(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: Theme.of(context).colorScheme.onPrimary,
- fontWeight: FontWeight.bold),
- ));
- }
- }
|