FLUTTER ECOSYSTEM

mcrovero/flutter_interactive_keyboard

Mais sobre https://medium.com/@mattia_crovero/interactive-keyboard-in-flutter-5d7ac6ee096b

Capa do projeto flutter_interactive_keyboard
Stars
54
Forks
28
Último push (UTC)
12 de abr. de 2021
Status do projeto
Ativo
Mattia Crovero GitHub avatar
GITHUB User

Mattia Crovero ↗

Full stack developer @ Ujiboo Srl

Ujiboo SrlItaly, TurinSite oficial ↗
LinguagensDartSwiftRubyKotlinObjective-C

Pacotes publicados por este repositório

Dependências usadas

Lista de dependências 2 itens
  • flutter{"sdk":"flutter"}
  • flutter_testDesenvolvimento{"sdk":"flutter"}

README original

Texto original em inglês. Visite o GitHub para a versão atual.

Expandir / recolher README

pub package

This plugin is not under active development. If you'd like to contribute, PRs are welcomed.

Flutter Interactive Keyboard

A way to mimic the iOS interactive dismissable keyboard in Flutter. For Android, the behavior will still be applied without animation due to the Android keyboard limitations.

https://github.com/mcrovero/flutter_interactive_keyboard/raw/master/assets/demo1.gif

How to use it

The KeyboardManagerWidget defines the area where the draggable keyboard is enabled. Gestures are passed to the widget in order to permit both scrolling and drag-to-dismiss behavior.

focusNode is required when using a TextField to manage the keyboard opening and closing.

See the full example to see a complete implementation.

KeyboardManagerWidget(
  focusNode: _focusNode,
  child: ListView.builder(
    itemCount: 100,
    itemBuilder: (context,index){
      return ListTile(
        title: Text("element $index"),
      );
    },
  ),
)

Advanced

Change focusNode

If your app has more than one TextField that should trigger the keyboard, you can change the current FocusNode from the KeyboardManagerWidgetState as follows:

// Init variable
GlobalKey<KeyboardManagerWidgetState> _key = GlobalKey();

// In the build method
KeyboardManagerWidget(
  key: _key,
  ...
)

// Wherever you like
_key.currentState.substituteFocusNode = newFocusNode;