- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在Flutter showSearch()上更改提示文本和提示文本颜色
AppBar(
backgroundColor: Colors.blue,
centerTitle: true,
title: appBarIcon(context),
actions: <Widget>[
IconButton(
icon: Icon(Icons.search),
onPressed: () {
showSearch(
context: context,
delegate: CustomSearchDelegateAssets(_searchdata, widget.regId));
})
],
),
最佳答案
根据showSearch
方法的the sources,它只是推送了一条新路由 _SearchPageRoute
。
此内部定义的路由提供了一个有状态的小部件(_SearchPage
),该小部件由一个新建的AppBar
和其中的文本字段组成。
您需要做的是基于_SearchPageRoute
创建一个自定义路由,返回自定义_SearchPage
。需要通过基于showSearch
逻辑的自己的方法来推送路由。
要实现自定义hintText
和hintStyle
,请在您的自定义InputDecoration
中修改_SearchPageState
。
例如MySearchPageRoute
class MySearchPageRoute<T> extends PageRoute<T> {
// ...
@override
Widget buildPage(
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
) {
return MySearchPage<T>( // KEY PROP: Custom stateful widget based on `_SearchPage`
delegate: delegate,
animation: animation,
);
}
// ...
}
class MySearchPage<T> extends StatefulWidget {
// ...
@override
State<StatefulWidget> createState() => MySearchPageState<T>();
}
class MySearchPageState<T> extends State<MySearchPage<T>> {
// ...
@override
Widget build(BuildContext context) {
// ...
return Semantics(
// ...
child: Scaffold(
appBar: AppBar(
// ...
title: TextField(
// ...
decoration: InputDecoration(
border: InputBorder.none,
hintText: "My Custom Search Label", // KEY PROP
hintStyle: TextStyle(color: Colors.red), // KEY PROP
),
),
// ...
),
// ...
)
);
}
// ...
}
Future<T> showMySearch<T>({
@required BuildContext context,
@required SearchDelegate<T> delegate,
String query = '',
}) {
// ...
return Navigator.of(context).push(MySearchPageRoute<T>( // KEY PROP
delegate: delegate,
));
}
_SearchPageRoute
,
_SearchPage
,
_SearchPageState
和
showSearch
from the sources即可。然后在我用
// KEY PROP
标记的行中进行更改。
关于dart - 如何在搜索代表上添加hintText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56161736/
我在我的应用程序上使用 intl 进行翻译,当我在 hintText 上使用翻译时遇到问题,我收到此错误: Arguments of a constant creation must be const
我有一个像这样的 TextField,其中输入文本和提示文本的大小不同。 TextField( style: Theme.of(context).textTheme.subhead.copyW
这就是我想要做的: 在文本字段的 Flutter 文档 (https://flutter.io/text-input/) 中,它说您可以通过将 null 传递给装饰来删除下划线。但是,这也摆脱了提示文
我想在 CupertinoTextField 中添加提示文本,而不导入 Material 主题。到目前为止,我尝试将 CupertinoTextField 与 InputDecoration 混合使用
这是我的代码,我想改变提示文本的颜色,怎么办? "#email":{ width: '70%', left:'13%', font:{ fontSize
我不确定这是错误还是我未能理解其工作原理。 我正在使用 Input用于收集用户输入的小部件,我已将 hintText 字段设置为显示“在此处输入内容”,以便用户知道该做什么。这行得通并且提示文本在我的
我想增加 TextFormField 中 labelText 和hintText 之间的距离,而 contentPadding: EdgeInsets.fromLTRB(x, x, x, x) 根
当用户单击编辑按钮时,我正在尝试使用 setState 自动填充文本字段。文本已设置,但默认 hintText 和 floatingLabelText 与文本重叠。当我单击内部文本字段标签时,提示文本
我是一名优秀的程序员,十分优秀!