Как работает реактивный ранец под крышкой - PullRequest
1 голос
/ 25 октября 2019

Новый компонент Jetpack compose, добавленный к компоненту Arch, похож на создание пользовательского интерфейса Flutter.

Как работает пользовательский интерфейс?

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

Ответы [ 2 ]

1 голос
/ 30 октября 2019

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

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

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

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

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

1 голос
/ 26 октября 2019

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

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

...