我目前还找不到有人做过这个的,所以我会尝试清楚地说明我面临的问题。
我的KMP应用程序中共享模块中有一个名为compose-ui
的模块。 compose-ui
有一个commonMain
目录,其中包含所有组成UI(在桌面和安卓应用之间共享的屏幕)。现在问题是,在Android上将文本复制到剪贴板需要Context,而无法在commonMain中访问它,那好吧,使用@Composable copyToClipboard(text: string)
预期/实际函数,但使用IconButton
及其OnClick:() -> Unit
会导致错误,即@Composable仅可从合成上下文调用
。 我不确定该如何处理这个问题,我需要某种方式来访问上下文以访问剪贴板管理器,但我无法访问它也无法传递它。
copyClipboardLambda
应该是一个expect
函数,提供的实现是针对 Android 的,而桌面端的实现将会不同,因为它没有上下文。 - Phil Dukhov