mac*_*our 20 android-jetpack-compose android-jetpack-compose-preview
我使用的是 Android Studio Bumblebee 2021.1.1 Canary 3 + Compose 1.0-rc02,似乎没有简单的方法可以强制使用横向模式进行预览,其中包括使用-land/资源文件夹中的资源(特别是维度)。
我知道这种行为在理论上是可能的,因为 using@Preview(device = Devices.AUTOMOTIVE_1024p)将使用正确的资源值。但是,这不是一个可行的预览选项,因为与默认预览设备相比,像素密度较低。(即使调整预览宽度、高度和字体比例,图标的尺寸仍然错误。)
我能够做到这一点,以便我的 UI 代码使用以下包装器检测横向方向
val lanscapeConfig = LocalConfiguration.current.apply {
orientation = Configuration.ORIENTATION_LANDSCAPE
}
CompositionLocalProvider(LocalConfiguration provides lanscapeConfig) {
// actual preview code
}
Run Code Online (Sandbox Code Playgroud)
然而,这并不能解决上述问题,即无法使用dimensionResource().
有任何想法吗?
mac*_*our 19
此功能已实现:使用可组合预览预览您的 UI#与不同设备一起使用。来自哈维尔的回答:
@Preview(
showSystemUi = true,
device = "spec:width=411dp,height=891dp,dpi=420,isRound=false,chinSize=0dp,orientation=landscape"
)
Run Code Online (Sandbox Code Playgroud)
当前的解决方法是使用单独的文件进行横向预览并指定device = Devices.AUTOMOTIVE_1024p,然后调整高度和宽度(但不调整字体比例)。
但我希望有人能想出一种适用于不同设备类型的更好方法。
@Preview(device = Devices.AUTOMOTIVE_1024p, widthDp = 720, heightDp = 360)
@Composable
fun PreviewLandscape() {
PreviewHelper() // common preview code to all modes
}
Run Code Online (Sandbox Code Playgroud)
根据新规范,可以通过以下方式完成:
@Preview(
showSystemUi = true,
device = "spec:width=411dp,height=891dp,dpi=420,isRound=false,chinSize=0dp,orientation=landscape"
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8215 次 |
| 最近记录: |