在 compose-desktop 的示例中
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
fun main() = application {
var isOpen by remember { mutableStateOf(true) }
var isAskingToClose by remember { mutableStateOf(false) }
它有 androidx 导入。
是否可以在可用于其他桌面环境的撰写桌面上运行其他 Android 库,例如 Exoplayer 和 Google Accompanist?
不,这只是一个名字。
Compose 最初是由 Android 团队创建的,后来他们与 JetBrains 合作创建了多平台版本。但 Android 团队决定不更改包的名称(例如,删除前缀
androix
),JetBrains 必须使用相同的包名称以实现兼容性。
您无法运行任何特定于 Android 的库 - 使用 Compose for Desktop 创建的应用程序作为普通 JVM 应用程序运行。
根据这些库对 Android 原语的依赖程度,将它们移植到桌面可能更容易或更困难。例如,Coil 实际上是围绕 Android 框架类构建的,例如
Bitmap
、BitmapFactory
、ImageDecoder
,因此移植它会非常困难。 Coil 作者正在做多平台的移植,3.0.0 应该有它,目前处于 alpha 状态。
许多 Google Accompanist 库仅在 Android 平台上有意义。如果您需要在桌面上使用其中一些,您可以尝试复制粘贴源代码,看看是否可以在桌面上运行。