TGViewer
Android Broadcast Android Broadcast @android_broadcast · 14.5K subscribers
Post #10128 5.09K

Forwarded from Compose Broadcast

⚙️ mediaQuery в Compose: один вызов вместо кучи WindowSizeClass + posture + input

Официально появился mediaQuery — лямбда, которая смотрит на текущий UiMediaScope и возвращает boolean. Внутри можно проверять:
👉 windowWidth / windowHeight
👉 windowPosture (Tabletop, Book, Flat)
👉 pointerPrecision (Fine → Coarse → Blunt → None)
👉 keyboardKind (Physical / Virtual / None)
👉 hasCamera / hasMicrophone
👉 viewingDistance (Near / Medium / Far)

Включается одним флагом при запуске приложения:
ComposeUiFlags.isMediaQueryIntegrationEnabled = true


Для размеров, которые дёргаются часто, лучше использовать derivedMediaQuery (обёртка над derivedStateOf):
// Composable code
val narrowerThanMedium by derivedMediaQuery {
windowWidth < WindowSizeClass.WIDTH_DP_MEDIUM_LOWER_BOUND.dp
}
val narrowerThanExpanded by derivedMediaQuery {
windowWidth < WindowSizeClass.WIDTH_DP_EXPANDED_LOWER_BOUND.dp
}
when {
narrowerThanMedium -> SinglePaneLayout()
narrowerThanExpanded -> TwoPaneLayout()
else -> ThreePaneLayout()
}


Самый чистый кейс — foldable в tabletop:
// Composable code
if (mediaQuery { windowPosture == UiMediaScope.Posture.Tabletop }) {
TabletopLayout()
} else {
FlatLayout()
}


Это API не замена WindowSizeClass, но удобный единый вход для всего, что меняется в рантайме. Если пишете адаптив под foldable / desktop / TV — возьмите на заметку. Пока не перенесли в Compose Multiplatform.

Документация Media Query API

#Compose #JetpackCompose #Adaptive #UI #Android
  • 👍 25
  • ❤ 5
  • 👎 4
  • 🔥 2
More from @android_broadcast
  1. Sep 22, 2026🤖 Одно Android-приложение — куча процессов. Зачем это может понадобиться Android-приложен…
  2. Sep 21, 2026🤖 Правильно собирай билд для оценки производительности Чтобы оценить скорость работы прил…
  3. Sep 21, 2026🔥 ОТКРЫВАЕМ ГОРОДСКОЙ СЕЗОН С ЭРГОСТОЛ! С 21 по 30 сентября вас ждут скидки до -20% на ст…
  4. Sep 21, 2026🔴 Как получить офер в Amazon? Сегодня, 21 сентября, 19:00 (время по Минску, GMT+3) В чате…
  5. Sep 18, 2026Post #10189
  6. Sep 17, 2026🤖 GPT-6 Astra в большом отрыве 🤯 для решения задач и дешевле, чем Fable 5.1 и Opus 5 😂…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →