首页 > 解决方案 > Flutter - 如何更改搜索委托类中的文本颜色?

问题描述

我设法改变了hintStyle-color

暗示风格

@override
ThemeData appBarTheme(BuildContext context) {
  return ThemeData(
    primaryColor: kPrimaryColor,
    primaryIconTheme: IconThemeData(
      color: Colors.white,
    ),
    inputDecorationTheme: InputDecorationTheme(
      hintStyle:
        Theme.of(context).textTheme.title.copyWith(color: Colors.white),
    ),
  );
}

但是,如果我在 appbar 搜索字段中输入一些内容,颜色仍然是黑色...

在此处输入图像描述

如何textcolorSearchDelegate课堂上正确更改?

标签: flutterdartcolorsflutter-layouttextcolor

解决方案


使用 SearchDelegate 您可以自定义搜索的文本提示值和颜色以及查询的颜色和大小。为达到这个:

搜索的文本提示值 --> 您可以覆盖作为字符串的searchFieldLabel

@override
String get searchFieldLabel => 'Your Custom Hint Text...';

搜索的颜色 --> 您可以使用 Theme 类的 hintColor 属性覆盖:

@override
  ThemeData appBarTheme(BuildContext context) {
    return Theme.of(context).copyWith(
      hintColor: Colors.white,
    );
  }

查询的文本颜色和大小 --> 您需要覆盖委托的appBarTheme方法并更改您需要的内容。要更改查询的文本颜色,请设置header6textTheme

@override
ThemeData appBarTheme(BuildContext context) {
assert(context != null);
final ThemeData theme = Theme.of(context).copyWith(
  textTheme: TextTheme(
    headline6: TextStyle(
      color: Colors.white,
      fontSize: 18.0,
    ),
  ),
);
assert(theme != null);
return theme;
}

推荐阅读