【问题标题】:Flutter: How to change theme from runtime?Flutter:如何从运行时更改主题?
【发布时间】:2020-11-02 16:00:09
【问题描述】:

我有 3 个基于颜色的主题,例如红色主题、蓝色主题和深色主题。我想在应用运行时更改应用的主题。

我想显示一个警告对话框,用户可以从中选择主题的颜色。

【问题讨论】:

    标签: flutter material-design flutter-layout


    【解决方案1】:

    当您呈现一个 AlertDialog(使用 await showDialog())时,会有一个 Future<dynamic> 返回值。因此,在对话框中有一些按钮可以让用户选择他们的主题。用户选择完主题后,使用 Navigator.of(context).pop(selectedTheme) 返回选择的主题。

    无论您在哪里显示对话框,例如final userSelectedTheme = await showDialog(...),都等待此值。一旦你有了新的值,然后更新任何持有主题的状态模型,你的应用应该相应地更新。

    由于主题通常位于应用程序的顶层,如果您不使用其他任何东西,您可能需要的不仅仅是有状态小部件。如果您不熟悉其他任何内容,我会研究 Provider:

    https://pub.dev/packages/provider

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      相关资源
      最近更新 更多