Я создаю набор констант для управления макетом виджета в моем приложении Flutter. Некоторые из этих констант имеют отношения, которые необходимо применять. Как проверить эти константы при горячей перезагрузке?
Например, у меня есть файл layout.dart
со следующим кодом:
const horizontalContentMargin = 20.0;
const verticalContentMargin = horizontalContentMargin;
const listItemSpacing = horizontalContentMargin;
const listBottomMargin = verticalContentMargin - listItemSpacing;
/*...*/
void validateLayout() {
assert(listItemSpacing <= verticalContentMargin);
/*...*/
}
Кажется, что единственный разумный способ проверкиКонстанты сделать это один раз, когда приложение создается. Но приложение не создается заново при горячей перезагрузке, и мне нужно проверять константы при каждой перезагрузке.
Я бы предпочел написать следующее, но Dart не поддерживает это:
const horizontalContentMargin = 20.0;
const verticalContentMargin = horizontalContentMargin;
const listItemSpacing = horizontalContentMargin;
const listBottomMargin = verticalContentMargin - listItemSpacing;
/*...*/
assert(listItemSpacing <= verticalContentMargin);
/*...*/
Есть ли другой способ сделать это, возможно, место, где я могу звонить validateLayout()
при каждой перезагрузке?
ОБНОВЛЕНИЕ 1: Ну, я обнаружил, что все, что мне нужно сделать, это позвонить validateLayout()
с build()
в самом верхнем StatelessWidget. Я просто предположил, что это не перезапустится при горячей перезагрузке. Оно делает. Наверное, я еще не понимаю, как создаются виджеты.
Хотелось бы услышать, как другие люди решают эту проблему, хотя, на случай, если есть более идиоматический способ управления макетом.
ОБНОВЛЕНИЕ 2: я обнаружил эту страницу по созданию адаптивного пользовательского интерфейса и переоцениваю свой подход.