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.

39 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, required this.onSaved, required this.hintValue, required this.validator, required this.onChanged});
  16. @override
  17. Widget build(BuildContext context) {
  18. return TextFormField(
  19. keyboardType: const TextInputType.numberWithOptions(decimal: true),
  20. inputFormatters: [
  21. FilteringTextInputFormatter.allow(ConstCommon.regExpDecimal),
  22. ThousandsFormatter(allowFraction: true),
  23. ],
  24. decoration: InputDecoration(
  25. labelText: hintValue,
  26. ),
  27. validator: (v) {
  28. validator(v);
  29. },
  30. controller: textController,
  31. onSaved: (v) {
  32. onSaved(v);
  33. },
  34. onChanged: onChanged,
  35. );
  36. }
  37. }