gpt4 book ai didi

flutter - 是否可以在 Flutter 中自动设置小部件的主题?

转载 作者:IT王子 更新时间:2023-10-29 06:32:41 27 4
gpt4 key购买 nike

在 Google 的移动框架 Flutter 中,您可以使用 Cupterino (iOS) 小部件或 Material Design (Android) 小部件构建您的应用。这意味着您必须两次构建您的应用程序,以便为每个设备创建两种不同的风格——一次使用 Cupertino 小部件为 iOS 构建,然后另一次使用 Material Design 小部件为 Android 构建。有没有一种方法可以自动为这些小部件设置主题以适应每个平台,这样我就可以避免两次构建 Flutter 应用程序?

最佳答案

是的,这当然是可能的。您可以使用继承的 Theme widget得到 ThemeData MaterialApp 的对象。

ThemeData 有一个 property called platform ,可用于为不同平台提供不同的小部件。在您的 Android-iOS 案例中,它看起来像这样:

@override
Widget build(BuildContext contect) =>
Theme.of(context).platform == TargetPlatform.iOS ? // ternary if statement to check for iOS
CupertinoAlertDialog() : // Cupertino style dialog
AlertDialog(); // Material style dialog

如您所见,您可以使用 TargetPlatform constant检查您的应用程序在哪个平台上运行。

这显然也可以应用于图标等。

如果您正在使用适用于 Android Studio 或 IntelliJ IDEA 的 Flutter 插件,您还可以使用 Flutter Inspector 打开 TargetPlatform苍蝇,即 模拟 Flutter SDK 在 iOS 上运行,即使您在 Android 上也是如此,反之亦然 .

关于flutter - 是否可以在 Flutter 中自动设置小部件的主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50890798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com