我在 compose 中使用 Preview 时似乎遇到了问题,当我用 @preview 注释一个 compose 方法时,布局面板没有出现。我假设我缺少一个依赖项,但我已经从这里复制并粘贴了 https://developer.android.com/jetpack/compose/setup 的代码。有什么建议么? (尝试了通常的清除缓存,重新打开项目等):)
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion '1.0.0-alpha10'
kotlinCompilerVersion '1.4.21'
}
}
dependencies {
implementation 'androidx.compose.ui:ui:1.0.0-alpha10'
// Tooling support (Previews, etc.)
implementation 'androidx.compose.ui:ui-tooling:1.0.0-alpha10'
// Foundation (Border, Background, Box, Image, Scroll, shapes, animations, etc.)
implementation 'androidx.compose.foundation:foundation:1.0.0-alpha10'
// Material Design
implementation 'androidx.compose.material:material:1.0.0-alpha10'
// Material design icons
implementation 'androidx.compose.material:material-icons-core:1.0.0-alpha10'
implementation 'androidx.compose.material:material-icons-extended:1.0.0-alpha10'
// Integration with observables
implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-alpha10'
implementation 'androidx.compose.runtime:runtime-rxjava2:1.0.0-alpha10'
// UI Tests
androidTestImplementation 'androidx.compose.ui:ui-test-junit4:1.0.0-alpha10'
implementation 'com.google.android.material:material:1.2.1'
}
这是我使用预览的尝试(在 AS 中它说从未使用过函数“DefaultPreview”)
import androidx.compose.ui.tooling.preview.Preview
.....
@Preview
@Composable
fun DefaultPreview() {
Text(text = "Hello!")
}
答案 0 :(得分:3)
如果其他人遇到和我一样的问题(这是用户错误,但我也认为文档可能会更清楚),我将保留此内容。
Android Canary 有两个版本,beta 版和 arctic fox (alpha)。如果您想使用最新版本的 compose 库,请确保您使用的是 arctic fox。我发现撰写库 'androidx.compose.ui:ui-tooling:1.0.0-alpha08'
(及更高版本)在 Canary 的 Beta 版中不能很好地工作。
答案 1 :(得分:1)
Jetpack Compose(rc01、rc02)存在 @Preview
问题。您可以通过在 build.gradle 文件中添加以下代码来解决它:
android {
...
}
configurations.all {
resolutionStrategy {
force("androidx.compose.ui:ui-tooling:1.0.0-beta09")
force("androidx.compose.ui:ui-tooling-data:1.0.0-beta09")
force("androidx.compose.ui:ui-tooling-preview:1.0.0-beta09")
}
}
dependencies {
...
}
示例:https://github.com/AlexZhukovich/ComposePlayground/blob/main/app/build.gradle
答案 2 :(得分:0)