Jetpack Compose 预览未显示

时间:2021-01-22 01:04:28

标签: android android-jetpack-compose

我在 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!")
}

3 个答案:

答案 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)

我想你可以在配置中找到你想要的东西 enter image description here