Compose создает одно представление с именем AndroidComposeView
, которое в настоящее время наследует ViewGroup, и рисует дерево виджетов на своем холсте. Он также обрабатывает события движения / клавиатуры для этого представления.
В этом представлении может быть добавлено больше вспомогательных представлений из-за подробностей реализации, но в основном для «виджетов» Compose вы не увидите классические представления вПосмотреть иерархию. Инспектор макетов в настоящее время не помогает в Compose - вы можете попробовать его, но вы не увидите свои виджеты.
Разработчикам обещают иметь возможность создавать собственные настраиваемые виджеты, которые могут рисовать непосредственно на Canvas,установить компоновку для себя или потомков, или обработать события ввода.
Однако Canvas
и множество других используемых здесь классов не являются стандартными каркасными классами. Например, Canvas for Compose переопределяется в Kotlin. Аналогичным образом появляются новые Paint
, Shape
и другие новые классы. Они внутренне используют каркасные классы для своей работы, но это детали реализации. При рисовании вы будете использовать эти новые классы.
Поскольку Compose является библиотекой и не представлена изначально на устройствах Android, библиотека включена в каждое приложение, использующее Compose. Также здесь нет нативного кода, все делается в Kotlin и становится частью дексированного кода вашего приложения. С помощью Compose ваше приложение не будет содержать никакой дополнительной нативной библиотеки (возможно, если создатели не передумают).