显示键盘时如何拦截颤动后退按钮

thg*_*ehr 3 keyboard back-button flutter

我想在flutter中拦截软键盘的后退键。因此,当我想通过按后退按钮关闭键盘时,我想要调用一个附加功能。我怎样才能做到这一点?

键盘返回键

在此处输入图片说明

Kar*_*mry 6

您可以使用keyboard_visibility包来实现这一点。

工作示例

SnackBar一旦关闭键盘,以下代码会显示一个。

import 'package:flutter/material.dart';
import 'package:keyboard_visibility/keyboard_visibility.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  GlobalKey<ScaffoldState> _key;

  @override
  void initState() {
    super.initState();
    _key = GlobalKey<ScaffoldState>();
    KeyboardVisibilityNotification().addNewListener(
      onHide: () {
        _key.currentState.showSnackBar(
          SnackBar(
            content: Text("Keyboard closed"),
          ),
        );
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        key: _key,
        body: Center(
          child: TextField(),
        ),
      ),
    );
  }
}

Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明