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

Метод createState

Метод createState класса StatefulWidget вызывается один раз, когда элемент впервые попадает в дерево. Возвращаемый State живёт дольше, чем конфигурация виджета.

Синтаксис

State<T> createState()

Пример

Давайте вернём приватный State из createState:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: ToggleLabel(), ), ), ), ); } class ToggleLabel extends StatefulWidget { const ToggleLabel({super.key}); @override State<ToggleLabel> createState() => _ToggleLabelState(); } class _ToggleLabelState extends State<ToggleLabel> { bool on = false; @override Widget build(BuildContext context) { return Text(on ? 'abcde' : '12345'); } }

На экране createState создаст State, который покажет '12345'.

Пример

Давайте переключим текст через setState:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: ToggleLabel(), ), ), ), ); } class ToggleLabel extends StatefulWidget { const ToggleLabel({super.key}); @override State<ToggleLabel> createState() => _ToggleLabelState(); } class _ToggleLabelState extends State<ToggleLabel> { bool on = false; @override Widget build(BuildContext context) { return ElevatedButton( onPressed: () => setState(() => on = !on), child: Text(on ? 'abcde' : '12345'), ); } }

На экране кнопка будет менять подпись между двумя строками.

Смотрите также

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