common_form_item.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import 'package:flutter/material.dart';
  2. class CommonFormItem extends StatelessWidget {
  3. final String? label;
  4. final Widget Function(BuildContext context)? contentBuilder;
  5. final Widget? suffix;
  6. final String? suffixText;
  7. final String? hitText;
  8. final bool readOnly;
  9. final ValueChanged? onChanged;
  10. final GestureTapCallback? onTap;
  11. final String? Function(String?)? validator;
  12. final TextEditingController? controller;
  13. const CommonFormItem(
  14. {Key? key,
  15. this.label,
  16. this.contentBuilder,
  17. this.suffix,
  18. this.suffixText,
  19. this.hitText,
  20. this.readOnly = false,
  21. this.onChanged,
  22. this.onTap,
  23. this.validator,
  24. this.controller})
  25. : super(key: key);
  26. @override
  27. Widget build(BuildContext context) {
  28. return Container(
  29. padding: const EdgeInsets.only(left: 14.0, right: 14.0, top: 20),
  30. child: contentBuilder != null
  31. ? contentBuilder!(context)
  32. : TextFormField(
  33. readOnly: readOnly,
  34. controller: controller,
  35. onTap: onTap,
  36. validator: validator,
  37. decoration: InputDecoration(
  38. border: const OutlineInputBorder(),
  39. labelText: label,
  40. hintText: hitText,
  41. suffixText: suffixText),
  42. ));
  43. }
  44. }