pubspec 中的 flutter 暗模式启动画面设置

问题描述 投票:0回答:2

我使用包

splash_screen_view
作为我的闪屏。 它获得了应用程序默认主题的深色和浅色图像。 但如果用户主题手机是浅色的并且想要使用应用程序深色的,我该如何为我的启动设置条件? 这个包的设置设置为
pubspec.yaml

请问有人可以帮助我吗?

这是我的 pubspec:

flutter dart themes splash-screen
2个回答
0
投票

检查您的 MaterialApp() 是否已设置 theme 和 darkTheme 并设置 themeMode: ThemeMode.system,以便您的应用程序遵循用户手机的设置。

看起来像这样:

MaterialApp(
title: 'Great App',
theme: lightTheme, //create this
darkTheme: darkTheme, //create this
themeMode: ThemeMode.system, //follows user's device setting
home: GoHome(),
);

您的启动画面将遵循正确的设置。

奖励:搜索 flutter_native_splash 还可将本机启动颜色设置为手机设置。


0
投票

定义启动屏幕资源:首先,确保在 pubspec.yaml 文件中包含启动屏幕的浅色和深色主题图像。

确定主题偏好:在 Flutter 应用程序中,您通常会使用主题数据结合状态管理解决方案(例如 Provider、BLoC 或 Riverpod)来确定用户的主题偏好。此首选项可以存储在应用程序的设置中或从系统主题派生。

自定义启动屏幕逻辑:由于splash_screen_view本身不支持基于动态主题的启动屏幕,因此您通常需要创建一个自定义启动屏幕,以根据当前主题设置加载适当的图像。此自定义逻辑可以在初始屏幕的 initState 方法或类似方法中实现。这是一个简单的示例,说明如何实现自定义启动屏幕,该启动屏幕根据主题决定显示哪个图像:

测试:确保通过切换模拟器或设备中的主题设置来测试此行为,以确保启动屏幕按预期对主题更改做出反应

© www.soinside.com 2019 - 2024. All rights reserved.