How to detect when a TextField is selected in Flutter?

前端 未结 5 2028
猫巷女王i
猫巷女王i 2020-12-13 02:24

I have a Flutter TextField which gets covered by the soft keyboard when the field is selected. I need to scroll the field up and out of the way when the keyboard is displaye

5条回答
  •  难免孤独
    2020-12-13 02:51

    To be notified about a focus event, you can avoid manually managing widget's state, by using the utility classes FocusScope, Focus.

    From the docs (https://api.flutter.dev/flutter/widgets/FocusNode-class.html):

    Please see the Focus and FocusScope widgets, which are utility widgets that manage their own FocusNodes and FocusScopeNodes, respectively. If they aren't appropriate, FocusNodes can be managed directly.

    Here is a simple example:

    FocusScope(
      child: Focus(
        onFocusChange: (focus) => print("focus: $focus"),
        child: TextField(
          decoration: const InputDecoration(labelText: 'City'),
        )
      )
    )
    

提交回复
热议问题