实现类似 antd message 效果的 Toast 组件
目标:
- 提供一个 Toast 单例可以像系统自带的 Toast.makeText 一样可以在任意地方使用
- ui 内容可用 composable 函数完全自定义
原理: 使用 AndroidViewModel 可以实现 Toast 单例在任意地方调用
AndroidViewModel 是什么? 来自 GPT 的答案
问:AndroidViewModel 是什么? 是否可以用来实现自定义 Toast 并全局单例调用?
AndroidViewModel 是 Android Jetpack 提供的一个 ViewModel 子类,它比普通的 ViewModel 多了一个能力:**可以访问 Application 上下文**。
它适用于你需要访问 Context 的地方,例如:
- 读取资源文件
- 调用 Toast、Clipboard、文件、SharedPreferences
- 依赖注入时需要 context
GPT 提供的简单代码示例
完整代码如下包含自定义 ui 动画等 github.com/LeiYao123/C…
同理:像一些需要高度自定义的 Drawer、Modal 组件也可以才这种方案进行定制,因为 Material Design3 的自带的组件使用起来限制太多了而且许多功能不支持,代码 github.com/LeiYao123/C…