设置内容撰写对话框适用于 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 您的代码的好方法。
我已经 运行 通过调试器一百次了,并一遍又一遍地进入 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 您的代码的好方法。