gpt4 book ai didi

android - 如何自定义 SearchDelegate(创建自定义搜索字段)

转载 作者:行者123 更新时间:2023-12-04 17:20:28 25 4
gpt4 key购买 nike

我一直在尝试自定义 Flutter SearchDelgate到我想要的搜索字段的类型。它有一个名为 appBarTheme 的方法返回类型 ThemeData .通常使用 ThemeData您可以更改 appbar 主题,但在我的情况下没有任何更改。我可以自定义提示文本样式searchFieldStyle方法,仅此而已。
这是代码:

class CustomSearchDelegate extends SearchDelegate<Country> {
@override
ThemeData appBarTheme(BuildContext context) {
return ThemeData(
appBarTheme: AppBarTheme(
elevation: 0,
color: themeColor,
//app bar color I wanted
),
);
}

@override
TextStyle get searchFieldStyle => TextStyle(
color: whiteTextColor,
fontWeight: FontWeight.w600,
fontFamily: GoogleFonts.poppins().fontFamily,
);

@override
List<Widget> buildActions(BuildContext context) {
return [
IconButton(
icon: Icon(
Icons.close_rounded,
color: Colors.white,
),
onPressed: () => query = '',
),
];
}

@override
Widget buildLeading(BuildContext context) {
return IconButton(
icon: Icon(
Icons.arrow_back_ios,
color: Colors.white,
),
onPressed: () {
close(context, null);
},
);
}

@override
Widget buildResults(BuildContext context) {
return Column(
children: [],
);
}

@override
Widget buildSuggestions(BuildContext context) {
return Column(
children: [],
);
}
}
如果有人可以帮助我解决这个问题,那将是非常有帮助的。
另外,以前也有人提出过类似的问题,但从未得到回答
Flutter create custom search UI extends SearchDelegate

最佳答案

不幸的是,您无法完全控制 AppBar 的主题。在 SearchDelegate因为您在 appBarTheme 中指定的一些主题属性值未分配给 SearchDelegate 中使用的应用栏小部件.你可以看看源代码。它只取 MaterialApp 中指定的 ThemeData 中指定的值。主题属性。就我而言,我需要更改光标颜色,但更改 MaterialApp 中的颜色还会修改其他地方使用的 TextFields 中的颜色。
一种解决方案是您甚至可以在打开 SearchDelegate 之前更改颜色。即在 showSearch 之前并在从 showSearch 导航回来后再次将其更改回原始颜色.

关于android - 如何自定义 SearchDelegate(创建自定义搜索字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66508933/

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