Проблема с пониманием этого кода во флаттере - PullRequest
0 голосов
/ 03 мая 2020

Я изучал флаттер и наткнулся на этот код:

class MyStatelessWidget extends StatelessWidget {
  final String name;
  MyStatelessWidget(this.name);

  @override
  Widget build(BuildContext context) { 
    return Text('Hello, $name!');
  }
}

Извините, я хотел бы задать несколько вопросов по приведенному выше коду. Во-первых, почему нужно использовать @override, то есть я знаю, что это необходимо для переопределения метода, но верно ли, что метод сборки в StatelessWidget определен так: *? Во-вторых, здесь Widget build Означает ли виджет, что сборка возвращает виджет? В-третьих, зачем нам здесь использовать BuildContext build(BuildContext context)?

1 Ответ

0 голосов
/ 03 мая 2020

КОНТЕКСТ

Из документов BuildContext имеет вид:

Дескриптор расположения виджета в дереве виджетов.

context - это экземпляр BuildContext, который передается построителю виджета, чтобы сообщить ему, где он находится внутри дерева виджетов вашего приложения.

Одним из распространенных применений является его передача метод of при использовании Inherited Widget.

Вызов Something.of (context), например, возвращает Something относительно ближайшего виджета в дереве, который может предоставить вам Something.

МЕТОД СТРОИТЕЛЬСТВА

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

Подробнее о методе сборки здесь Метод сборки

STATELESS WIDGET

Виджет, который не требует изменяемого состояния.

Государственный ss виджет - это виджет, который описывает часть пользовательского интерфейса, создавая совокупность других виджетов, которые описывают пользовательский интерфейс более конкретно. Подробнее о виджете без состояния читайте здесь Виджет без состояния

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...