【问题标题】:Copying to clipboard on Kotlin Multiplatform在 Kotlin Multiplatform 上复制到剪贴板
【发布时间】:2021-09-23 11:41:27
【问题描述】:

到目前为止,我找不到任何人这样做,因此我将尝试正确说明我面临的问题。

我的 KMP 应用程序的 shared module 中有一个 compose-ui 模块。 compose-ui 有一个 commonMain 目录,所有撰写 UI 都驻留(在桌面和 Android 应用程序之间共享的屏幕)。现在的问题是,要将文本复制到剪贴板(在 Android 上),您需要 Context,它不能在 commonMain 中访问,好吧,没问题,我必须期待/实际函数 @Composable copyToClipboard(text: string),但使用 @ 987654326@ 及其OnClick : () -> Unit 会导致@Composable can only be called from composable context 的错误。我不知道该怎么做,我不知何故需要上下文来访问剪贴板管理器,但我无法访问它也无法传递它。

【问题讨论】:

    标签: android kotlin android-context android-jetpack-compose kotlin-multiplatform


    【解决方案1】:

    这样的东西应该可以工作,它是你的 androidMain:

    @Composable
    fun copyClipboardLambda(): () -> Unit {
        val context = LocalContext.current
        return {
            context.yourCopyFunc()
        }
    }
    

    在你看来:

    @Composable
    fun View() {
        val copyClipboard = copyClipboardLambda()
        Box(
            modifier = Modifier.clickable {
                copyClipboard()
            }
        )
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2013-04-07
      相关资源
      最近更新 更多