Flutter TextField焦点监听

2020-03-18  本文已影响0人  倪大头

用Listener监听TextField的FocusNode,来判断输入框是否在响应中
给输入框创建FocusNode和controller

FocusNode nameFocusNode = FocusNode();
final nameController = TextEditingController();
TextField(
    controller: nameController,
    cusNode: nameFocusNode,
),

initState方法中对FocusNode进行监听

@override
  void initState() {
    super.initState();
    // 这里可以设置输入框默认值
    nameController.text = widget.nickname;
    // 输入框焦点
    nameFocusNode.addListener(() {
      if (!nameFocusNode.hasFocus) {// 失去焦点
        print(nameController.text);
      }
    });
  }

controller要销毁

@override
  void dispose() {
    nameController.dispose();
    super.dispose();
  }
上一篇下一篇

猜你喜欢

热点阅读