Widget2 является дочерним элементом Widget1, и я заметил, что всякий раз, когда значение MediaQuery.viewInsetsOf(context).bottom изменяется (например, когда клавиатура отображается или скрывается), это вызывает метод сборки Widget2, но не его родительский элемент Widget1. Другими словами, при изменении значения свойства перестраивается только Widget2, а не виджеты, находящиеся над ним в дереве.
Мой вопрос:
- Как Flutter определяет, какой виджет нужно перестроить при изменении свойства MediaQuery?
< /li>
Почему перестраивается только виджет, напрямую обращающийся к значению MediaQuery, а не его родительские или родительские виджеты?
Дополнительная информация:
- Версия Flutter: 3.24.3
- Пример кода:
@override
Widget build(BuildContext context) {
return Widget2();
}
}
class Widget2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
double bottomPadding = MediaQuery.viewInsetsOf(context).bottom;
return Container(
padding: EdgeInsets.only(bottom: bottomPadding),
child: Text("Hello World"),
);
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ebuilds-on
Мобильная версия