flutter - Flutter - 当文本字段具有焦点时隐藏提示文本
问题描述
当我专注于文本字段时,我需要知道如何隐藏提示文本。这是我的代码:
class _ContactoState extends State<Contacto> {
FocusNode focusMsj;
@override
void initState() {
super.initState();
focusMsj = FocusNode();
focusMsj.addListener(() {
if (!focusMsj.hasFocus) {
FocusScope.of(context).requestFocus(focusMsj);
}
});
}
TextField(
focusNode: focusMsj,
hintText: focusMsj.hasFocus ? ' ' : 'Hint Text',)
return WillPopScope(
child: Listener(
onPointerUp: (e) {
focusMsj.hasFocus ? FocusScope.of(context).requestFocus(FocusNode()): '';
},
谢谢
解决方案
为了做这件事,你需要做类似的事情
class Play extends StatefulWidget {
@override
_PlayState createState() => _PlayState();
}
class _PlayState extends State<Play> {
FocusNode focusNode = FocusNode();
String hintText = 'Hello , iam Hint';
@override
void initState() {
// TODO: implement initState
super.initState();
focusNode.addListener(() {
if (focusNode.hasFocus) {
hintText = '';
} else {
hintText = 'Hello , iam Hint';
}
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(onPressed: () {
print(focusNode.hasFocus);
}),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextField(
focusNode: focusNode,
decoration: InputDecoration(
hintText: hintText,
),
),
TextField(
decoration: InputDecoration(
hintText: '!!',
),
),
],
),
),
);
}
}
不久,我通过其 focusNode 属性收听了 TextField。当 TextField 具有焦点时,我使 hintText 属性等于空字符串值
推荐阅读
- javascript - 按字母顺序排序
- linq - 具有子属性的复杂 linq 查询
- reactjs - 反应电话号码输入格式和无格式输出
- linux - 如何为 Alpine Linux 中的进程提供`__snprintf_chk`
- jsf - 提醒保存更改
- python - DBLP从python中的巨大xml文件中获取www-homepage信息
- angular - 角度中没有这样的文件cli.js
- asp.net-mvc - 身份验证/客户端验证/如何检查输入是否为数字?
- javascript - 在 Chrome 窗口中切换标签,而不会失去对活动窗口的关注
- java - 2 个子串算作 1 个物种