Проверка дротических констант при горячей перезагрузке - PullRequest
0 голосов
/ 12 октября 2019

Я создаю набор констант для управления макетом виджета в моем приложении 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: я обнаружил эту страницу по созданию адаптивного пользовательского интерфейса и переоцениваю свой подход.

...