【发布时间】:2020-11-02 16:00:09
【问题描述】:
我有 3 个基于颜色的主题,例如红色主题、蓝色主题和深色主题。我想在应用运行时更改应用的主题。
我想显示一个警告对话框,用户可以从中选择主题的颜色。
【问题讨论】:
标签: flutter material-design flutter-layout
我有 3 个基于颜色的主题,例如红色主题、蓝色主题和深色主题。我想在应用运行时更改应用的主题。
我想显示一个警告对话框,用户可以从中选择主题的颜色。
【问题讨论】:
标签: flutter material-design flutter-layout
当您呈现一个 AlertDialog(使用 await showDialog())时,会有一个 Future<dynamic> 返回值。因此,在对话框中有一些按钮可以让用户选择他们的主题。用户选择完主题后,使用 Navigator.of(context).pop(selectedTheme) 返回选择的主题。
无论您在哪里显示对话框,例如final userSelectedTheme = await showDialog(...),都等待此值。一旦你有了新的值,然后更新任何持有主题的状态模型,你的应用应该相应地更新。
由于主题通常位于应用程序的顶层,如果您不使用其他任何东西,您可能需要的不仅仅是有状态小部件。如果您不熟悉其他任何内容,我会研究 Provider:
【讨论】: