Как форматировать TextField под ввод чисел?

В Flutter существует несколько способов форматировать вводимые данные в TextField под числа. Давайте рассмотрим несколько из них:

1. Использование TextInputType.number:
TextField имеет свойство keyboardType, которое позволяет указать тип вводимых данных. В вашем случае, для ввода чисел вы можете использовать TextInputType.number. Например:

TextField(
  keyboardType: TextInputType.number,
)

При использовании этого типа клавиатуры, пользователю будет предложено ввести только числа.

2. Использование inputFormatters:
TextField также предоставляет свойство inputFormatters, которое позволяет применять форматирование к вводимым данным. Вы можете использовать классы TextInputFormatter или его дочерние классы для задания желаемого формата. Для форматирования чисел можно использовать классы NumberFormat или FilteringTextInputFormatter. Вот пример:

import 'package:flutter/services.dart';

TextField(
  inputFormatters: [FilteringTextInputFormatter.digitsOnly],
)

Здесь мы использовали FilteringTextInputFormatter.digitsOnly, который позволяет пользователю вводить только цифры.

3. Использование TextEditingController:
Другим подходом может быть использование TextEditingController. Вы можете создать экземпляр этого класса, привязать его к TextField и определить логику форматирования вводимых данных в соответствующем обработчике. Ниже приведен пример:

import 'package:flutter/material.dart';

class NumericTextField extends StatefulWidget {
  @override
  _NumericTextFieldState createState() => _NumericTextFieldState();
}

class _NumericTextFieldState extends State<NumericTextField> {
  final _controller = TextEditingController();

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return TextField(
      controller: _controller,
      keyboardType: TextInputType.number,
      inputFormatters: [FilteringTextInputFormatter.digitsOnly],
      onChanged: (value) {
        // Произведите здесь необходимое форматирование
      },
    );
  }
}

В данном примере используется FilteringTextInputFormatter.digitsOnly для того, чтобы пользователь мог вводить только цифры. В обработчике onChanged можно осуществить необходимое форматирование или валидацию ввода.

В итоге, вам предоставляются различные варианты форматирования TextField под ввод чисел. Выбор зависит от ваших конкретных требований и предпочтений.