Flutter: как пересобрать приложение для определенного события - PullRequest
0 голосов
/ 03 августа 2020

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

Когда я увеличиваю или уменьшаю масштаб chrome, мне требуется обновить sh страницу, чтобы получить желаемые размеры. Если я не обновлю sh, размеры виджетов не изменяются.

Мне нужен определенный триггер, подобный функциональности, где при изменении ширины приложение должно быть перестроено.

Как этого добиться?

1 Ответ

2 голосов
/ 03 августа 2020

Для этого можно использовать LayoutBuilder. Этот виджет имеет параметр построителя, который вызывается при изменении ограничений макета.

LayoutBuilder(
    builder: (context, constraints) {

    },
)

Ограничения предоставляют параметры, которые позволяют вашему приложению понять, сколько места доступно

constraints.maxWidth; // get maximum available width
constraints.maxHeight; // get maximum available height
constraints.minWidth; // get minimum available width
constraints.minHeight; // get minimum available height

Они могут может использоваться для условного изменения макета в зависимости от доступного пространства и перестроений во время макета.

В качестве альтернативы вы можете использовать просто MediaQuery. Вы можете получить ширину:

MediaQuery.of(context).size.width;

и высоту:

MediaQuery.of(context).size.height;

Однако эти вызовы должны выполняться в методе build, чтобы размеры изменялись при каждой перестройке.

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