gpt4 book ai didi

flutter - 在 flutter MaterialApp 小部件中使用 ThemeData copyWith 的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-03 03:04:09 24 4
gpt4 key购买 nike

我试图改变 accentColor复制 ThemeData.light() 后,然后我有一个带有 FloatingActionButton 的示例屏幕

class Sample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: Icon(Icons.add),
),
)}}

然后在 main.dart 的主小部件中调用 runApp ,如果我设置了 ThemeDataMaterialApp像这样的小部件, FloatingActionButton将具有橙色。
theme: ThemeData(
accentColor: Colors.orange
)

但是如果我试图从 Themedata.light().copyWith 继承颜色, FloatingActionButton仍将具有浅色主题中的蓝色。
theme: ThemeData.light().copyWith(
accentColor: Colors.orange
)

我期待着 FloatingActionButton应该是橙色,因为它继承了 light主题并覆盖 accentColor .

最佳答案

这是 Flutter 中的常见问题,但您现在可以通过执行以下操作来解决它:

theme: ThemeData.light().copyWith(
floatingActionButtonTheme:
ThemeData.light().floatingActionButtonTheme.copyWith(
backgroundColor: Colors.orange,
),
),
如果您使用任何其他按钮,您应该这样做并覆盖它的主题,
您可以在此处阅读有关此问题的更多信息 Updating the Material Buttons and their Themes
buttonColor not honored when using ThemeData.light().copyWith()

关于flutter - 在 flutter MaterialApp 小部件中使用 ThemeData copyWith 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61907450/

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