flutter 更改所选文本的突出显示颜色

c7rzv4ha  于 2023-05-19  发布在  Flutter
关注(0)|答案(5)|浏览(185)

当用户从TextField中选择文本时,默认的突出显示颜色为蓝色。如何将其变为绿色?

dfddblmv

dfddblmv1#

2021答案

使用主题换行并使用copyWith保留其他主题数据。

Theme(data: Theme.of(context).copyWith(
   textSelectionTheme: TextSelectionThemeData(
     selectionColor: Colors.green)),
   child: TextFormField()
)
vjhs03f7

vjhs03f72#

将文本控件用主题 Package ,并将颜色分配给ThemeData内部的textSelectionColor属性
参考下面的代码相同:-我已经改变了文本选择颜色为绿色

Theme(
     data: ThemeData(textSelectionColor: Colors.green),
          child: TextField(
              controller: _inputController,
              decoration: InputDecoration(hintText: "Input"),
           ),
  ),
4xy9mtcn

4xy9mtcn3#

改变ThemeDatatextSelectionColor的值,它会给予你你正在寻找的结果。

lf5gs5x2

lf5gs5x24#

我尝试设置所有的颜色的TextField,我也有同样的问题。由于我想全局更改颜色,所以工作是设置MaterialAppprimarySwatch
最好的是,对于高亮颜色,你不需要设置alpha为某个值,所以选择不像其他颜色那样丰富多彩。设置原色确实处理有一个较低强度的颜色的选择,它看起来很好。
不幸的是,这种方法不适用于单个TextField。
我的应用程序的色调颜色可以改变。因此,我需要一种方法来转换ColorMaterialColor,我写了一个扩展。它并不完美,因为它忽略了不同背景下不同层次的概念。但在我的情况下,这并不重要。还有改进的余地。你可以转换为HSVColor,并设置不同的saturationvalue s,如果你愿意。

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,
      },
    );
  }
}
ttvkxqim

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,
        ),
 }
}

相关问题