当用户从TextField中选择文本时,默认的突出显示颜色为蓝色。如何将其变为绿色?
dfddblmv1#
使用主题换行并使用copyWith保留其他主题数据。
Theme(data: Theme.of(context).copyWith( textSelectionTheme: TextSelectionThemeData( selectionColor: Colors.green)), child: TextFormField() )
vjhs03f72#
将文本控件用主题 Package ,并将颜色分配给ThemeData内部的textSelectionColor属性参考下面的代码相同:-我已经改变了文本选择颜色为绿色
Theme( data: ThemeData(textSelectionColor: Colors.green), child: TextField( controller: _inputController, decoration: InputDecoration(hintText: "Input"), ), ),
4xy9mtcn3#
改变ThemeData的textSelectionColor的值,它会给予你你正在寻找的结果。
ThemeData
textSelectionColor
lf5gs5x24#
我尝试设置所有的颜色的TextField,我也有同样的问题。由于我想全局更改颜色,所以工作是设置MaterialApp的primarySwatch。最好的是,对于高亮颜色,你不需要设置alpha为某个值,所以选择不像其他颜色那样丰富多彩。设置原色确实处理有一个较低强度的颜色的选择,它看起来很好。不幸的是,这种方法不适用于单个TextField。我的应用程序的色调颜色可以改变。因此,我需要一种方法来转换Color为MaterialColor,我写了一个扩展。它并不完美,因为它忽略了不同背景下不同层次的概念。但在我的情况下,这并不重要。还有改进的余地。你可以转换为HSVColor,并设置不同的saturation或value s,如果你愿意。
MaterialApp
primarySwatch
Color
MaterialColor
HSVColor
saturation
value
Color globalTint = <your color>; return MaterialApp( title: 'YourAppTitle', theme: ThemeData( primarySwatch: globalTint.toMaterialColor(), fontFamily: "YourFont", brightness: Brightness.light ), darkTheme: ThemeData( primarySwatch: globalTint.toMaterialColor(), fontFamily: "YourFont", brightness: Brightness.dark ), debugShowCheckedModeBanner: false, home: const Home() ); extension ColorExtension on Color { MaterialColor toMaterialColor() { return MaterialColor( value, <Int, Color>{ 50: this, 100: this, 200: this, 300: this, 400: this, 500: this, 600: this, 700: this, 800: this, 900: this, }, ); } }
ttvkxqim5#
请使用这个代码。
Widget build(BuildContex contex){ return MaterialApp{ debugShowCheckedModeBanner: false, theme: ThemeData( brightness: Brightness.light, primarySwatch: Colors.green, iconTheme: IconThemeData( color: kGreenColor, ), hoverColor: kPrimaryColor, indicatorColor: kPrimaryColor, ), } }
5条答案
按热度按时间dfddblmv1#
2021答案
使用主题换行并使用copyWith保留其他主题数据。
vjhs03f72#
将文本控件用主题 Package ,并将颜色分配给ThemeData内部的textSelectionColor属性
参考下面的代码相同:-我已经改变了文本选择颜色为绿色
4xy9mtcn3#
改变
ThemeData
的textSelectionColor
的值,它会给予你你正在寻找的结果。lf5gs5x24#
我尝试设置所有的颜色的TextField,我也有同样的问题。由于我想全局更改颜色,所以工作是设置
MaterialApp
的primarySwatch
。最好的是,对于高亮颜色,你不需要设置alpha为某个值,所以选择不像其他颜色那样丰富多彩。设置原色确实处理有一个较低强度的颜色的选择,它看起来很好。
不幸的是,这种方法不适用于单个TextField。
我的应用程序的色调颜色可以改变。因此,我需要一种方法来转换
Color
为MaterialColor
,我写了一个扩展。它并不完美,因为它忽略了不同背景下不同层次的概念。但在我的情况下,这并不重要。还有改进的余地。你可以转换为HSVColor
,并设置不同的saturation
或value
s,如果你愿意。ttvkxqim5#
请使用这个代码。