Без сомнения, разработчики Flutter ждут поддержки многоконтурной работы на ПК уже давно. В соответствии с информацией из темы #142845, прогресс в этой области был продемонстрирован на конференции Ubuntu Summit 27 октября.
На самом деле сотрудничество между Ubuntu и Flutter началось ещё в 2021 году. Тогда Кен отметил, что команда Ubuntu будет стремиться обеспечить полную поддержку многоконтурной работы Flutter на всех десктопных платформах.
Хотя демонстрация была проведена на Ubuntu/Canonical, поддержка многоконтурной работы обязательно будет внедрена во все платформы, хотя начинать придётся с какой-то одной:
Сейчас уже представлены черновики и варианты API, такие как:
window.dart
, которая позволит разработчикам создавать, обновлять и уничтожать окна, предоставляя глобальные методы взаимодействия с системой окон, а также требование использования компонента MultiWindowApp
.flutter/windowing
, который координирует взаимодействие между window.dart
и embedder.

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

Например, самый обычный сценарий многоконтурной работы позволяет открывать новые окна из существующих, при этом все окна видны в центре управления задачами:

Поддерживается множество моделей диалоговых окон, таких как модальные диалоги, немодальные диалоги и диалоги, являющиеся родителями других диалогов:

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

Поддержка всплывающих окон, возможность настройки локатора, закрепление за видом, закрепление за окном и т.д.:
Поддержка корректировки ограничений, возможность прокрутки, переворота, изменения размера:

Согласно документации по дизайну, эти возможности также поддерживаются в API, например метод создания окна возвращает конкретный подкласс, соответствующий прототипу окна, такие как TopLevel, PopupWindow, DialogWindow, SatelliteWindow и TipWindow.
Для обеспечения нормальной работы множества окон требуется изменение кода запуска каждого платформенного уровня для поддержки многоплатформенной среды. Для однооконных приложений базовый код запуска остаётся без изменений, но пользователю следует иметь возможность выбора включения кода запуска для многоплатформенной среды при выполнении команды `flutter create`.
Кроме того, многие ключевые виджеты и методы из Material API должны быть адаптированы для поддержки новых возможностей многоплатформенной среды, такие как:
- `showDialog`
- `showMenu`
- `MenuAnchor`
- ...
Как можно заметить, поддержка многоплатформенной среды в Flutter уже достаточно хорошо развита, хотя пока нет информации о том, когда она будет доступна официально. Тем не менее, общие усилия указывают на высокую вероятность реализации этой функции.> PS: В дополнении к тому, что вы можете наблюдать Flutter на смартфонах с HarmonyOS Next, возможно, вы сможете увидеть его на будущих устройствах с HarmonyOS PC. На данный момент некоторые приложения уже были выпущены на HarmonyOS Next; например, в инспекторе ArkUI можно увидеть, что страница социальных сетей WeChat была создана с использованием Flutter:
>
> Дополнительная информация доступна по следующим ссылкам:
- https://docs.google.com/document/u/0/d/1eQG-IS7r4_S9_h50MY_hSGwUVtgSTRSLzu7MLzPNd2Y/mobilebasic?tab=t.0&_immersive_translate_auto_translate=1
- https://github.com/flutter/flutter/pull/157525
- https://github.com/flutter/flutter/issues/142845#issuecomment-2435738214
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )