标签: jetpack-compose

如何让 LaunchedEffect 运行一次并且不再运行?

我知道它LaunchedEffect(key)是在组合开始时执行的,并且在更改时也会被取消并重新执行key。但是,我希望它只执行一次,不再执行,我正在使用以下解决方法,但我觉得我错过了一些东西:

if (!launchedBefore) {
   LaunchedEffect(null) {
      //stuff

      launchedBefore = true
   }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好。但这感觉像是一个捉襟见肘的解决方法,同时可以做一些更简单的事情。我是否误解了 LaunchedEffect 的完整工作原理?

我尝试使用nullUnit作为键,因为它们从未改变,但每次组合发生时都会执行代码。

android kotlin android-jetpack-compose jetpack-compose

7
推荐指数
1
解决办法
4788
查看次数

在 Jetpack Compose Desktop 中使用约束布局

我使用新项目向导在 Intellij 设置中创建了一个新的 Jetpack Compose 桌面项目。我想像在 Android 中一样使用 ConstraintLayout,所以我添加以下行

implementation("androidx.constraintlayout:constraintlayout:2.1.4")
Run Code Online (Sandbox Code Playgroud)

在 build.gradle 中,如下所示:

sourceSets {
    val jvmMain by getting {
        dependencies {
            implementation(compose.desktop.currentOs)
            implementation("androidx.constraintlayout:constraintlayout:2.1.4")
        }
    }
    val jvmTest by getting
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然无法访问约束布局。

根据这个问题的答案,似乎可以在桌面中使用约束布局。我究竟做错了什么?

android android-jetpack jetpack-compose

4
推荐指数
1
解决办法
448
查看次数

在jetpack compose中变换卡片的形状

谁能告诉我如何在 jetpack compose 中创建以下形状

在此输入图像描述

先感谢您

android kotlin android-jetpack-compose jetpack-compose

1
推荐指数
1
解决办法
510
查看次数