Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗flPmFdOC 71 of 125 menu
◀ ▶

Колбэк onChanged у TextField в Flutter

Чтобы экран реагировал на каждый символ в поле, у TextField есть onChanged. Flutter вызывает его после изменения строки и передаёт новое значение. В обработчике обновляют поле в State и вызывают setState, чтобы перерисовать виджеты ниже.

Так можно показывать превью ввода без TextEditingController: достаточно хранить String в состоянии. Контроллер понадобится, когда нужно читать или менять текст из кода - это отдельный урок:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: HomePage())); } class HomePage extends StatefulWidget { const HomePage({super.key}); @override State<HomePage> createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { String typed = ''; @override Widget build(BuildContext context) { return Scaffold( body: Padding( padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ TextField( decoration: const InputDecoration( labelText: 'Message', border: OutlineInputBorder(), ), onChanged: (value) { // empty field passes '' setState(() { typed = value; }); }, ), const SizedBox(height: 16), Text('You typed: $typed'), ], ), ), ); } }

Сделайте поле с подписью 'Name'. Под ним выводите Text с текстом 'Hello, ' и введённым именем. Обновление только через onChanged и setState, без контроллера.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить