HarmonyOS 鸿蒙Next CustomDialogController一定要搞得这么难用吗?
HarmonyOS 鸿蒙Next CustomDialogController一定要搞得这么难用吗?
“CustomDialogController仅在作为@CustomDialog和@Component struct的成员变量,且在@Component struct内部定义时赋值才有效”
这不是意味着全局的自定义弹框根本用不了?打个比方,定义一个路由,统一调用router.push方法并且处理错误,在错误里自定义弹窗提示,这怎么搞?
CustomDialog里的CustomDialogController一直是undefined,非常变扭
但是使用 AlertDialog有个问题就是样式无法设置,如果需要错误是红色字体或红色弹窗背景,成功说另外的颜色。或者想要加个icon,完全无法实现
那就考虑自建子Window来做弹窗,搜搜论坛里好像有人做过了。
说出了我的心声~
CustomDialogController。。。简直了。。。。。。。
其实问题的症结在于:AlertDialog,Toast 可以在任意非ui的地方通过简单的初始化和调用就可以弹窗,但是CustomDialogController的创建和使用却限制在UI Component里面实例化和使用,实际场景确实很不方便。
参考Android的实现,Dialog只需要传入Activity的Context,可以创建单独的Window来实现弹窗,不限制在什么地方使用,这里猜测鸿蒙的AlertDialog,Toast类似这种实现(使用简单,但是不能自定义UI样式);但是CustomDialog的实现却不知道为什么不走这条路,大大增加开发者的成本,甚至很多人都自己通过创建subWindow的形式另辟蹊径,既然论坛呼声这么高,不知道官方接下来是否会优化自定义弹窗的实现和使用
HarmonyOS的CustomDialogController在使用时确实可能遇到一些挑战,这主要是由于其复杂的生命周期和绑定要求。确保CustomDialogController正确绑定到UI组件,并处理好其生命周期管理是关键。如果在使用中遇到困难,可以尝试查看官方文档或社区中的相关讨论,这些资源通常能提供详细的指导和解决方案。如果问题依旧没法解决,请加我微信,我的微信是itying888,我会尽力提供帮助。