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.

42 lines
1.3KB

  1. import 'package:farm_tpf/utils/const_common.dart';
  2. import 'package:farm_tpf/utils/const_string.dart';
  3. import 'package:farm_tpf/utils/validators.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:flutter/services.dart';
  6. import 'package:intl/intl.dart';
  7. import 'package:pattern_formatter/pattern_formatter.dart';
  8. class WidgetTextFormFieldNumber extends StatelessWidget {
  9. final TextEditingController textController;
  10. final void Function(String) onSaved;
  11. final void Function(String) validator;
  12. final void Function(String) onChanged;
  13. final String hintValue;
  14. WidgetTextFormFieldNumber(
  15. {@required this.textController,
  16. this.onSaved,
  17. @required this.hintValue,
  18. this.validator,
  19. this.onChanged});
  20. @override
  21. Widget build(BuildContext context) {
  22. return TextFormField(
  23. keyboardType: TextInputType.numberWithOptions(decimal: true),
  24. inputFormatters: [
  25. FilteringTextInputFormatter.allow(ConstCommon.regExpDecimal),
  26. ThousandsFormatter(allowFraction: true),
  27. ],
  28. decoration: InputDecoration(
  29. labelText: hintValue,
  30. ),
  31. validator: validator ??
  32. (String value) {
  33. return Validators.validNumberOrEmpty(value, label_invalid_number);
  34. },
  35. controller: textController,
  36. onSaved: onSaved,
  37. onChanged: onChanged,
  38. );
  39. }
  40. }