【发布时间】:2020-08-21 11:47:21
【问题描述】:
我想将 Icon 添加到 TextFormField 的 hintText 字段。我已经阅读了有关 prefixIcons 和 SuffixIcons 的信息,但它们会永久添加图标。我希望图标作为提示文本,以便当用户单击它时它会像提示文本一样消失。我如何在颤振中实现这一目标
【问题讨论】:
我想将 Icon 添加到 TextFormField 的 hintText 字段。我已经阅读了有关 prefixIcons 和 SuffixIcons 的信息,但它们会永久添加图标。我希望图标作为提示文本,以便当用户单击它时它会像提示文本一样消失。我如何在颤振中实现这一目标
【问题讨论】:
您无法使用 TextFormField 的属性来实现这一点,但您可以根据 Field 的控制器更改 Icon 的可见性:
bool isVisible = true;
TextEditingController controller = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: TextFormField(
controller: controller,
onChanged: (text){
setState(() {
controller.text.isEmpty ? isVisible = true : isVisible = false;
});
},
decoration: InputDecoration(
hintText: 'hintText',
prefixIcon: Visibility(
visible: isVisible,
child: Icon(Icons.person, color: Colors.grey,),
),
),
),
),
);
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
【讨论】:
? hello world can't do that with prefixicon
如果您愿意,可以在“hintText”字符串中添加表情符号。 由于表情符号被视为字符串,例如在颤振中,如果您想使用“关闭”图标,您可以使用“十字标记”表情符号来代替
搜索表情符号?的结果如下所示 https://i.stack.imgur.com/9Yykb.jpg
class ResultPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: TextField(
decoration:
InputDecoration(hintText: " ❌ hello this is a hint text"),
),
)));
}
}
【讨论】: