1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/CarGuo-GSYFlutterBook

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Flutter-FPC.md 7.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:06 5767d61

Новости, новые достижения в поддержке многоконтурной работы Flutter на ПК, продемонстрированные на Ubuntu/Canonical

Без сомнения, разработчики Flutter ждут поддержки многоконтурной работы на ПК уже давно. В соответствии с информацией из темы #142845, прогресс в этой области был продемонстрирован на конференции Ubuntu Summit 27 октября.

Иллюстрация

На самом деле сотрудничество между Ubuntu и Flutter началось ещё в 2021 году. Тогда Кен отметил, что команда Ubuntu будет стремиться обеспечить полную поддержку многоконтурной работы Flutter на всех десктопных платформах.

Иллюстрация

Хотя демонстрация была проведена на Ubuntu/Canonical, поддержка многоконтурной работы обязательно будет внедрена во все платформы, хотя начинать придётся с какой-то одной:

Иллюстрация

Сейчас уже представлены черновики и варианты API, такие как:

  • Необходимость библиотеки типа window.dart, которая позволит разработчикам создавать, обновлять и уничтожать окна, предоставляя глобальные методы взаимодействия с системой окон, а также требование использования компонента MultiWindowApp.
  • Необходимость MethodChannel API flutter/windowing, который координирует взаимодействие между window.dart и embedder.
  • Добавление соответствующего запуска для среды многоконтурной работы и т. д.```dart /// Example: void main() { runWidget( MultiWindowApp(initialWindows[j][k]: <Future Function(BuildContext)>[ (BuildContext context) => createWindow( context: context, size: const Size(640, 480), builder: (BuildContext context) { return const MyApp(); } ) ]) ); }

![Illustration](http://img.cdn.guoshuyu.cn/20241101_FPC/image4.png)

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

![Illustration](http://img.cdn.guoshuyu.cn/20241101_FPC/image5.png)

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

![Animation](http://img.cdn.guoshuyu.cn/20241101_FPC/image6.gif)

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

![Animation](http://img.cdn.guoshuyu.cn/20241101_FPC/image7.gif)

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

![](http://img.cdn.guoshuyu.cn/20241101_FPC/image10.gif)

Поддержка всплывающих окон, возможность настройки локатора, закрепление за видом, закрепление за окном и т.д.:![](http://img.cdn.guoshuyu.cn/20241101_FPC/image11.gif)

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

![](http://img.cdn.guoshuyu.cn/20241101_FPC/image12.gif)

Согласно документации по дизайну, эти возможности также поддерживаются в 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:
>
> ![](http://img.cdn.guoshuyu.cn/20241101_FPC/image13.png)Дополнительная информация доступна по следующим ссылкам:

- 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/CarGuo-GSYFlutterBook.git
git@api.gitlife.ru:oschina-mirror/CarGuo-GSYFlutterBook.git
oschina-mirror
CarGuo-GSYFlutterBook
CarGuo-GSYFlutterBook
master