Изменение текстовых символов, когда пользователь вводит текст в дрожании текстового поля

Я новичок в флаттере и пытаюсь придумать способ, чтобы пользователи могли вводить свои местоимения в моем приложении очень специфическим образом. Например, они могут ввести «она / ее / ее», и если они нажмут пробел, появится «/». В настоящее время у меня есть текстовое поле для этого, но я не уверен, что делать дальше и как это может работать.

Прямо сейчас у меня в коде есть:

        String _textSelect(String _controller) {
    _controller = _controller.replaceAll(" ", "/");
    return str;
  }

Но не работает. Любая помощь могла бы быть полезна. Спасибо!

2 ответа

Вы можете использовать onChangedсвойство текстового поля путем передачи функции, которая принимает новый текст в качестве параметра. Попробуй это:

      class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  
  final _textController = TextEditingController();
  
  @override
  void dispose() {
    _textController.dispose();
    super.dispose();
  }
  
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: TextField(
      controller: _textController,
      onChanged: (text) {
        _textController.text = text.replaceAll(" ", "/");
       _textController.value = _textController.value.copyWith(
        selection:
            TextSelection(baseOffset: text.length, extentOffset: text.length),
        composing: TextRange.empty,
              );
            }
          ),
        ),
      ),
    );
  }
}

Я бы рекомендовал использовать для этого TextInputFormatter.

Взгляните на https://api.flutter.dev/flutter/services/TextInputFormatter-class.html

«Чтобы создать собственные средства форматирования, расширьте класс TextInputFormatter и реализуйте метод formatEditUpdate».

Другие вопросы по тегам