12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import 'package:flutter/material.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- class ButtonForBlock extends StatefulWidget {
- final String title;
- final double? width;
- final double? height;
- final void Function()? onTap;
- final double? fontSize;
- final Color? bgColor;
- final Color? activeBgColor;
- final BoxBorder? border;
- final double? radius;
- const ButtonForBlock({
- Key? key,
- required this.title,
- this.onTap,
- this.width,
- this.height,
- this.fontSize,
- this.bgColor=const Color(0xFF00aaFF),
- this.activeBgColor=const Color(0xff007ab6),
- this.border,
- this.radius,
- }) : super(key: key);
- @override
- State<ButtonForBlock> createState() => _ButtonForBlockState();
- }
- class _ButtonForBlockState extends State<ButtonForBlock> {
- late bool isOn = false;
- @override
- Widget build(BuildContext context) {
- return GestureDetector(
- onTap: widget.onTap,
- onTapDown: (e)=>{setState(()=>{isOn=true})},
- onTapUp: (e)=>{setState(()=>{isOn=false})},
- onTapCancel: ()=>{setState(()=>{isOn=false})},
- child: Container(
- height: widget.height ?? 35.h,
- alignment: Alignment.center,
- width: widget.width ?? 280.w,
- decoration: BoxDecoration(
- color: isOn? widget.activeBgColor: widget.bgColor,
- borderRadius: BorderRadius.circular(widget.radius ?? (widget.height != null? widget.height!/2: 35.h/2)),
- border: widget.border
- ),
- child: Text(widget.title, style: TextStyle(color: Colors.white, fontSize: widget.fontSize ?? 15.sp)),
- ),
- );
- }
- }
|