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.

44 lines
1.4KB

  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(
  27. formatter: NumberFormat("#,###.####", "es"), allowFraction: true),
  28. ],
  29. decoration: InputDecoration(
  30. labelText: hintValue,
  31. errorStyle: TextStyle(height: 0),
  32. ),
  33. validator: validator ??
  34. (String value) {
  35. return Validators.validNumberOrEmpty(value, label_invalid_number);
  36. },
  37. controller: textController,
  38. onSaved: onSaved,
  39. onChanged: onChanged,
  40. );
  41. }
  42. }