-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add dynamic color support #605
Conversation
也许我们可以尝试解决一下这个报错 是否可以将 app_widget.dart 中 build 函数进行的 setDynamic setTheme 等调用移动到一个组件树相对稳定的场合 例如 init_page.dart 中的 build 函数的 WidgetsBinding.instance.addPostFrameCallback 回调中 |
晚点试试,先打会游戏( |
总之我们不能在 build 时调用 themeProvider 的 set 方法。 app_widget 中使用其他方式初始化主题应该也可以,例如直接将 color 等作为 MaterialApp 的参数传入。 |
问题出在 notifyListeners,控制 app_widget 内不执行就可以了 全部放在 init_page 会导致 theme 未初始化错误 如果初始状态 useDynamicColor 为真会导致白屏再切换到正常状态,可能是因为通过 PlatformChannel 获取主题色比较耗时的原因。在深色模式下会很难受,所以把 setDynamic 放在 init_page,取折中的方案让主题色延后应用 Screen-2025-01-15-003501.1.mp4 |
感谢你的工作,这个实现非常漂亮 只剩下两个小问题
这里注册在 initState 中的目的是?
这个项目并不是 Clean Arch 架构,我们也没有必要在项目根目录下创建 provider 文件夹来存放 themeprovider |
|
|
话说为什么把这个文件夹命名为 bean?这是我一直好奇的一个点,不是很了解 |
那段时间有在看 Java,来源应该是 Java Spring Bean。 不过和 Bean 的理念现在看上去完全不符,命名很失败。 |
噢 init_page 的 setDynamic 那里应该加个注释的,算了以后再加吧( |
原来如此,感谢解答 |
Close #2
用 Provider 代替 Adaptive theme
已知问题: