Flutter 如何在flatter中管理颜色

Flutter 如何在flatter中管理颜色,flutter,Flutter,我想在main.dart中将页面颜色更改为黑色。 我还希望我的其他网页的背景颜色是黑色 但是,第1-3页中的其他组件(如TextFormField边框)为黑色。这将使它变得不可战胜,因为背景颜色是黑色的。当我的背景色为黑色时,如何更改TextFormField边框的颜色 main.dart MaterialApp ThemeData( scaffoldBackgroundColor: Colors.black, ) home: Scaffold body:

我想在
main.dart
中将页面颜色更改为黑色。 我还希望我的其他网页的背景颜色是黑色

但是,第1-3页中的其他组件(如
TextFormField
边框)为黑色。这将使它变得不可战胜,因为背景颜色是黑色的。当我的背景色为黑色时,如何更改
TextFormField
边框的颜色

main.dart
 MaterialApp
   ThemeData(
     scaffoldBackgroundColor: Colors.black,
   )
   home: Scaffold
     body: Page01


Page01.dart       Page02.dart       Page03.dart


设置所有组件颜色的最智能方法是什么。

可以这样做的一种方法是在
SharedReferences
中设置一个变量,以便让应用程序知道何时要将
main.dart的
背景色更改为黑色
SharedReferences
将该值保存到本地存储中,这样即使在您关闭应用程序后,它也会记住您的首选项。不要忘记导入
SharedReferences
包:

您可以在
SharedReferences
中设置如下变量:

var prefs = await SharedPreferences.getInstance(); //instantiate shared preferences
prefs.setBool("key",false) //set a boolean using key value pairs
之后,您必须通过调用函数来获取值,最好是在initState()中

现在您已检索到值,只需使用三元运算符设置
TextFormField
背景色的颜色即可

decoration: InputDecoration(
  color: bg_gray? Colors.white:Colors.grey,
),

一种方法是在
SharedReferences
中设置一个变量,让应用程序知道何时要将
main.dart的
背景色更改为黑色
SharedReferences
将该值保存到本地存储中,这样即使在您关闭应用程序后,它也会记住您的首选项。不要忘记导入
SharedReferences
包:

您可以在
SharedReferences
中设置如下变量:

var prefs = await SharedPreferences.getInstance(); //instantiate shared preferences
prefs.setBool("key",false) //set a boolean using key value pairs
之后,您必须通过调用函数来获取值,最好是在initState()中

现在您已检索到值,只需使用三元运算符设置
TextFormField
背景色的颜色即可

decoration: InputDecoration(
  color: bg_gray? Colors.white:Colors.grey,
),

使用静态变量定义类AppTheme

class AppTheme {
static Color backgroundColor = Colors.black ;
static Color textFieldBorderColor = Colors.white ;
}
使用AppTheme.backgroundColor提供主题数据

main.dart
 MaterialApp
   ThemeData(
     scaffoldBackgroundColor: AppTheme.backgroundColor,
   )
   home: Scaffold
     body: Page01
和AppTheme.textFieldBorderColor以提供textField边框颜色

decoration: InputDecoration(
  color: AppTheme.textFieldBorderColor,
),

使用静态变量定义类AppTheme

class AppTheme {
static Color backgroundColor = Colors.black ;
static Color textFieldBorderColor = Colors.white ;
}
使用AppTheme.backgroundColor提供主题数据

main.dart
 MaterialApp
   ThemeData(
     scaffoldBackgroundColor: AppTheme.backgroundColor,
   )
   home: Scaffold
     body: Page01
和AppTheme.textFieldBorderColor以提供textField边框颜色

decoration: InputDecoration(
  color: AppTheme.textFieldBorderColor,
),

一种方法是使用第三方工具为应用程序生成主题。我一直在通过另一种方式使用panache,即使用SharedReferences,您可以使用第三方工具为您的应用程序生成主题。我一直在用另一种方式来炫耀自己,那就是使用SharedReferences