FLUTTER ECOSYSTEM

mcrovero/flutter_interactive_keyboard

更多内容请见 https://medium.com/@mattia_crovero/interactive-keyboard-in-flutter-5d7ac6ee096b

flutter_interactive_keyboard 项目封面
Stars
54
Forks
28
最近推送(UTC)
2021年4月12日
项目状态
未归档
Mattia Crovero GitHub avatar
GITHUB User

Mattia Crovero ↗

Full stack developer @ Ujiboo Srl

Ujiboo SrlItaly, Turin官方网站 ↗
语言DartSwiftRubyKotlinObjective-C

此仓库发布的插件

使用的依赖

依赖清单 2 项
  • flutter{"sdk":"flutter"}
  • flutter_test开发依赖{"sdk":"flutter"}

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

展开 / 收起项目 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;