android - Jetpack Compose 中的 @Stable 和 @Immutable 注解是什么意思?

标签 android android-jetpack-compose

在通过 Jetpack Compose 示例项目学习时,我看到了 @Stable@Immutabe注释。我一直在看Android documentationGitHub关于那些注释,但我不明白。
据我了解,如果使用 @Immutable ,即使状态发生变化,也不应该发生重组。然而,作为测试的结果,重组继续进行。
究竟是做什么的@Stable@Immutable Jetpack Compose 中的注释?

最佳答案

编译器对两者的处理方式相同,但

  • 使用 @Immutable是值(value)永远不会改变的 promise 。
  • 使用 @Stable是一个 promise ,该值是可观察的,如果它确实发生了变化,则通知监听器。
  • 关于android - Jetpack Compose 中的 @Stable 和 @Immutable 注解是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68575936/

    相关文章:

    android - 下载管理器 : notify when a download is finished

    Android Jetpack Compose TextField 禁用键盘自动建议

    android - Jetpack Compose 无法在多模块项目中编译

    android - ConstraintLayout 内的 RecyclerView - 起始位置在父级顶部

    android - 如何使用 BackdropScaffold 正确实现 Android Compose 嵌套导航

    android - 如何在不使用外部库的情况下在 Jetpack Compose 中显示 base64 编码的图像

    android-jetpack-compose - 喷气背包中的 textAllCaps 撰写

    android - 无法解决 : com. google.firebase :firebase-core:11. 2.0

    java - 如果两个项目具有相同的图像,则在运行时删除 GridView 项目

    android - 改造 :2. 0.0-beta2,带有 Joda DateTime 的 JacksonConverter