由于我已经开始使用Compose而不是xml创建所有新的UI组件,所以我不确定如何处理在Compose中创建的对话框。
在合成的 * 外部 * 使用对话框只需要对话框的上下文:
val builder = AlertDialog.Builder(context as Activity, R.style.PermissionInfoDialog)
[...]
builder.show()
这让你可以从“任何地方”触发对话框,只要你有一个上下文(是的,我意识到这可能被误用),但就我所能理解的,为了编写,我需要一个“可编写视图”来添加一个自定义编写对话框?当你有一个特定的片段可以显示一个特定的对话框时,它是可管理的,但如果你想要一个更通用的,可以重用的,如:
- 处理一般错误消息并向用户显示错误(来自“所有视图/片段/活动”)
- 在UI的多个部分中请求权限
- 等等。
则这变得更加杂乱。
在我的特定场景中,我有许多不同的片段需要请求权限的能力。(这需要我们向用户解释为什么需要它)以自定义对话框为开头。这个抽象片段包含了这个逻辑,而是单个合成视图或xml(因为这个应用程序是新旧东西的混合)这是需要的(?)添加我的合成对话框到,是抽象片段不知道的。当然,我可以有一个函数,让抽象片段请求“显示对话框的地方”,并让每个片段提供一个合成视图,但这--对我来说--感觉很不自然,很勉强。
关于如何解决这个问题,我是否遗漏了什么和/或一些“常见做法”?我想我正在寻找一些类似于旧解决方案的东西(逻辑上),即简单地引用上下文(或类似内容)来显示对话框。
1条答案
按热度按时间y4ekin9u1#
请使用AlertDialog在编写中添加对话框。