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.

38 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 String hintValue;
  13. WidgetTextFormFieldNumber(
  14. {@required this.textController,
  15. this.onSaved,
  16. @required this.hintValue,
  17. this.validator});
  18. @override
  19. Widget build(BuildContext context) {
  20. return TextFormField(
  21. keyboardType: TextInputType.numberWithOptions(decimal: true),
  22. inputFormatters: [
  23. FilteringTextInputFormatter.allow(ConstCommon.regExpDecimal),
  24. ThousandsFormatter(
  25. formatter: NumberFormat("#,###.####", "es"), allowFraction: true),
  26. ],
  27. decoration: InputDecoration(labelText: hintValue),
  28. validator: validator ??
  29. (String value) {
  30. return Validators.validNumberOrEmpty(value, label_invalid_number);
  31. },
  32. controller: textController,
  33. onSaved: onSaved,
  34. );
  35. }
  36. }