Как устроен реактивный ранец?

Новый компонент Compose Jetpack, добавленный в компонент Arch, похож на создание Flutter Ui.

Но как это сделать Ui?

Использует ли он собственный механизм кода, такой как Skia, или он по-прежнему следует примеру ViewGroup, как и раньше?

2 ответа

Решение

Compose создает одно представление с текущим именем AndroidComposeView, который наследует ViewGroup и рисует дерево виджетов на своем холсте. Он также обрабатывает события движения / клавиатуры для этого представления.

В это представление может быть добавлено больше вспомогательных представлений из-за деталей реализации, но в основном для "виджетов" Compose вы не увидите классические представления в иерархии представлений. Инспектор макета в настоящее время не помогает для Compose - вы можете попробовать его, но вы не увидите своих виджетов.

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

Тем не менее Canvasи многие другие используемые здесь классы не являются стандартными классами фреймворка. Например, Canvas for Compose переопределяется в Kotlin. Подобным образом есть новыеPaint, Shape, и другие новые классы. Они внутренне используют классы фреймворка для своей работы, но это детали реализации. При рисовании вы должны использовать эти новые классы.

Поскольку Compose является библиотекой и не присутствует изначально на устройствах Android, библиотека включена в каждое приложение, использующее Compose. Также здесь нет нативного кода, все делается на Kotlin и становится частью дексованного кода вашего приложения. Используя Compose, ваше приложение не будет содержать никакой дополнительной нативной библиотеки (возможно, если создатели не передумают).

Нет, он не использует ничего из старого UI Toolkit, на самом деле они создают его для решения старых проблем UIToolkit.

Compose - это не представления, это новый набор виджетов Jetpack UI. По сути, это плагин компилятора Kotlin, который отображает Android Canvas (я полагаю, для этого еще нет документации) с полной совместимостью с существующей системой просмотра Android, последний саммит разработчиков там был ток охватывает как это работает внутри, I/O был другой разговор слишком

Другие вопросы по тегам