基础组件库
 
 
 
 
 

49 lignes
1.5 KiB

  1. import 'package:cached_network_image/cached_network_image.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:zhiying_base_widget/widgets/public/custom_button/custom_button_model.dart';
  4. import 'package:zhiying_comm/zhiying_comm.dart';
  5. class CustomButton extends StatelessWidget {
  6. final CustomButtonModel style;
  7. final VoidCallback onClick;
  8. const CustomButton(this.style, {Key key, this.onClick}) : super(key: key);
  9. @override
  10. Widget build(BuildContext context) {
  11. var decoration = BoxDecoration(
  12. color: HexColor.fromHex(style.bgColor ?? ''),
  13. borderRadius: BorderRadius.circular(50));
  14. if (style.bgType == 'image') {
  15. decoration = BoxDecoration(
  16. image: DecorationImage(
  17. image: CachedNetworkImageProvider(style.bgImage ?? ''),
  18. fit: BoxFit.cover),
  19. borderRadius: BorderRadius.circular(50));
  20. }
  21. return GestureDetector(
  22. child: Container(
  23. width: double.infinity,
  24. height: double.infinity,
  25. decoration: decoration,
  26. child: Center(
  27. child: Row(
  28. crossAxisAlignment: CrossAxisAlignment.center,
  29. mainAxisAlignment: MainAxisAlignment.center,
  30. children: <Widget>[
  31. Text(
  32. style.name,
  33. style: TextStyle(
  34. color: HexColor.fromHex(style.textColor ?? ''),
  35. fontSize: 14,
  36. ),
  37. )
  38. ],
  39. ),
  40. ),
  41. ),
  42. onTap: onClick,
  43. );
  44. }
  45. }