tgoop.com/compose_broadcast/795
Create:
Last Update:
Last Update:
Что нового для всех таргетов:
👉 Аннотация @Preview в common коде теперь поддерживает задание параметров (имя для отображения, размеры и прочее)
👉 Больше возможностей по управлению тенями
👉 Адаптировали новое API для управления контекстным меню из Android под все платформы. Требуется включение через код
ComposeFoundationFlags.isNewContextMenuEnabled = true
👉 Тема Material Expressive
👉 Артефакт
androidx.compose.runtime:runtime стал мультиплатформенным, перенеся наработки из org.jetbrains.compose.runtime:runtime👉
runComposeUiTest() теперь позволяет запускать suspend функции в теле вызоваCompose/iOS
👉 Управление желаемой частотой кадров для рендера Composable
Modifier.preferredFrameRate(FrameRateCategory.High)
Modifier.preferredFrameRate(120f)
👉 Поддержка кастомизаций ввода, специфичных для iOS
BasicTextField(
value = "",
onValueChange = {},
keyboardOptions = KeyboardOptions(
platformImeOptions = PlatformImeOptions {
keyboardType(UIKeyboardTypeEmailAddress)
}
)
)
Compose/Web
🎉 Поддержка Web таргета перешло в Beta статус
👉 Поддержка Accessibility API
👉 Новое API для встраивания HTML
private val ttOSM =
"https://www.openstreetmap.org/export/embed.html?bbox=4.890965223312379%2C52.33722052818563%2C4.893990755081177%2C52.33860862450587&layer=mapnik"
@Composable
fun Map() {
Box(
modifier = Modifier.fillMaxWidth().fillMaxHeight()
) {
WebElementView(
factory = {
(document.createElement("iframe")
as HTMLIFrameElement)
.apply { src = ttOSM }
},
modifier = Modifier.fillMaxSize(),
update = { iframe -> iframe.src = iframe.src }
)
}
}
👉 Упростили связывание Jetpack Navigation c навигацией в браузере
// Код в Composable функции
LaunchedEffect(Unit) {
// Implicitly accesses the window object
navController.bindToBrowserNavigation()
}
Compose/Desktop
👉 Возможность настройки окна с контентом с помощью API SwingFrame() and SwingDialog(), аналогичные Window() and DialogWindow(). Разница то что новые API конфигурируются в init блоке до показа UI.
#compose #kmp
