Флаттер — Отображение курсора/курсора без фокусировки текстового поля

#flutter

Вопрос:

Я управляю содержимым виджета редактируемого текста из другого виджета, но я хотел бы показать курсор, но это кажется невозможным без фокусировки текстового поля.

Вот несколько примеров из кода — Widget1 требует фокусировки.

Родительский виджет (Перестраивает второй виджет с помощью анимированного конструктора)

 class ParentWidget extends StatefulWidget {
  @override
  _ParentWidgetState createState() => _ParentWidgetState();
}

class _ParentWidgetState extends State<ParentWidgetScreen> {
  late ValueNotifier<String> email = ValueNotifier<String>('');

  @override
    void dispose() {
      email.dispose();
    }

  @override
  Widget build(BuildContext context) {
    return Row(
        children: [
          Widget1(
            onChanged: (value){
              if(value != null){
                String newEmailValue = value['email']!;
                email.value = newEmailValue;
              }
              
            },
          ),
          AnimatedBuilder(
            animation: Listenable.merge([email]),
            builder: (BuildContext context, _){
            return Widget2(
                email: email.value,
              );
            }
          ),
        ],
      ),
  }
}
 

2-й Виджет:

 class Widget2 extends StatefulWidget {
  final String email;
  const Widget2({
    required this.email,
   });

  @override
  _Widget2State createState() => _Widget2State();
}

class _Widget2State extends State<Widget2> {
  final TextEditingController _email = TextEditingController();
  FocusNode _nodeEmail = FocusNode();
  
  @override
  Widget build(BuildContext context) {
     _email.value = _email.value.copyWith( //Everytime "email" updates - this is rebuilt
        text: widget.email,
        selection: TextSelection.collapsed(offset: widget.emailSelectionOffset),
      );
    return EditableText(
                controller: _email,
                autofocus: true,
                focusNode: _nodeEmail,
                cursorColor: Colors.white,
                backgroundCursorColor: Colors.white,
                style: TextStyle(color: Colors.white),
                readOnly: true,
                showCursor: true,
              ),
  }
}