设置内容撰写对话框适用于 Phone,但不适用于平板电脑? - Android

Set Content Compose Dialog Works on Phone, but Not Tablet? - Android

我已经 运行 通过调试器一百次了,并一遍又一遍地进入 setContent。我不知道为什么。没有给出错误。

完美适用于 Android phone。

在平板电脑上,整个 setContent 代码块被跳过。

这是处理打开对话框的片段。有什么想法吗?

    (activity as? MapActivity)?.findViewById<ComposeView>(R.id.map_fragment_container_composeview)
        ?.setContent {
            // Delegate to observe the showDialog state in viewModel
            val showDialogState: Boolean by dialog.showDialog.collectAsState()

            MdcTheme {
                OptionSelectComposeDialog(
                    show = showDialogState,
                    onDismiss = dialog::onDialogDismiss,
                    onConfirm = dialog::onDialogConfirm,
                    vm = dialog,
                )
            }
        }

从评论中复制以显示分辨率(感谢@ianhanniballake 和@MARSK)

为了给遇到的任何其他人提供进一步的文档,我们使用具有默认 (phone) 布局的布局文件夹。有一个单独的文件夹 layout-sw600dp 用于平板电脑。我很困惑,因为两个文件夹中的文件具有相同的名称,但是需要将 composeview 添加到两个布局中。

composeview 添加到 layout-sw600dp 文件夹后,问题就消失了。 我还删除了许多可空 (?) 标记。这些标记防止出现任何错误。

更新: 添加了可为空的 ? 标记。有人告诉我这是 future-proof 您的代码的好方法。