You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansu_ui/lib/buttons/as_longbutton.dart

121 lines
3.0 KiB

4 years ago
import 'package:ansu_ui/styles/as_colors.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class ASLongButton extends StatefulWidget {
///按钮文字
///动态类型可以是string或者widget
final dynamic title;
///按钮背景颜色
final Color bgColor;
///按钮文字颜色
///若已定义文字风格则此属性不生效
final Color textColor;
///圆角
final double radius;
///按钮文字风格
final TextStyle textStyle;
///内边距
final Padding padding;
///是否有边框
final bool outline;
///边框颜色
final Color outlineColor;
///点击事件
final VoidCallback onPressed;
4 years ago
///宽度
final double width;
4 years ago
///不可点击颜色
final Color disableColor;
///不可点击文字颜色
final Color disableTextColor;
ASLongButton(
{Key key,
@required this.title,
this.bgColor,
this.textColor,
this.radius,
this.textStyle,
this.padding,
this.outline = false,
this.outlineColor,
this.onPressed,
4 years ago
this.width,
this.disableColor,
this.disableTextColor})
: super(key: key);
4 years ago
ASLongButton.solid({
Key key,
this.textStyle,
this.padding,
this.outlineColor,
this.radius,
4 years ago
@required this.title,
this.onPressed,
4 years ago
this.width,
4 years ago
this.disableTextColor,
4 years ago
this.bgColor = kPrimaryColor,
}) : textColor = kLightTextColor,
outline = false,
4 years ago
disableColor = Color(0xFFC1BDB5),
super(key: key);
4 years ago
ASLongButton.hollow(
{Key key,
this.radius,
this.textStyle,
this.padding,
this.onPressed,
4 years ago
@required this.title,
4 years ago
this.width,
this.disableColor,
this.disableTextColor})
4 years ago
: bgColor = kForegroundColor,
textColor = kDarkPrimaryColor,
outline = true,
4 years ago
outlineColor = kDarkPrimaryColor,
super(key: key);
@override
_ASLongButtonState createState() => _ASLongButtonState();
}
class _ASLongButtonState extends State<ASLongButton> {
@override
Widget build(BuildContext context) {
return MaterialButton(
4 years ago
minWidth: widget.width ?? 280.w,
disabledColor: widget.disableColor,
4 years ago
textColor: widget.textColor ?? kLightTextColor,
disabledTextColor: widget.disableTextColor,
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
onPressed: widget.onPressed,
child: widget.title is String
? Text(widget.title,
4 years ago
style: widget.textStyle ?? TextStyle(fontSize: 20.sp))
: widget.title,
4 years ago
padding: widget.padding ?? EdgeInsets.symmetric(vertical: 8.w),
shape: RoundedRectangleBorder(
side: widget.outline
? BorderSide(color: widget.outlineColor, width: 1.w)
: BorderSide.none,
borderRadius: BorderRadius.circular(widget.radius ?? 22.5.w)),
4 years ago
color: widget.bgColor ?? kForegroundColor,
elevation: 0,
4 years ago
highlightElevation: 0,
4 years ago
splashColor: ColorTool.getSplashColor(widget.bgColor),
);
}
}