Как вычислять Windowsizeclass в JetPack Compose @previewAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как вычислять Windowsizeclass в JetPack Compose @preview

Сообщение Anonymous »

Я хочу предварительно просмотреть свой экран JetPack на верхнем уровне и проверить, правильно ли он адаптируется к разным размерам экрана. Я использую ширину Windowsizeclass , чтобы решить, как отображать экран. Это предлагаемый в настоящее время метод в Руководстве Android Dev.
Как я могу просмотреть, если мой композитный работает, как предназначено на нескольких устройствах без жесткого кодирования. Но это не работает в предварительном просмотре, если я не развернут его на устройство.

Код: Выделить всё

@ExperimentalMaterial3WindowSizeClassApi
@Preview(
name = "Smartphone, Nokia X20",
group = "Smartphone",
showSystemUi = true,
device = "spec:width=1080px,height=2400px,dpi=400",

)
@Preview(
name = "Tablet, Nokia T20",
group = "Tablet",
showSystemUi = true,
device = "spec:width=1200px,height=2000px,dpi=280"
)
@Composable
fun MasterDataScreenPreview() {
// calculateWindowSizeClass does not work in Android Studio Preview.
val windowWidthSize = calculateWindowSizeClass(LocalContext.current.getActivity()!!).widthSizeClass
MyAppTheme {
Surface {
MainScreenContent(
uiState = MainScreenUiState(),
windowSize = windowWidthSize,
)
}
}
}

fun Context.getActivity(): ComponentActivity? = when (this) {
is ComponentActivity -> this
is ContextWrapper -> baseContext.getActivity()
else -> null
}
Альтернативно я мог бы разделить этот единственный предварительный просмотр на двух отдельных предварительных просмотрах и пропустить Windowwidthsizeclass.compact для смартфона и Windowwidthsizeclass.medium для предварительного просмотра планшета.>

Подробнее здесь: https://stackoverflow.com/questions/775 ... se-preview
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»