halkyon/third_party/keyboard_height_plugin/lib/keyboard_height_plugin.dart

29 lines
788 B
Dart
Raw Normal View History

import 'dart:async';
import 'package:flutter/services.dart';
typedef KeyboardHeightCallback = void Function(double height);
class KeyboardHeightPlugin {
static const EventChannel _keyboardHeightEventChannel =
EventChannel('keyboardHeightEventChannel');
StreamSubscription? _keyboardHeightSubscription;
void onKeyboardHeightChanged(KeyboardHeightCallback callback) {
if (_keyboardHeightSubscription != null) {
_keyboardHeightSubscription!.cancel();
}
_keyboardHeightSubscription =
_keyboardHeightEventChannel.receiveBroadcastStream().listen(
(dynamic height) {
callback(height as double);
},
);
}
void dispose() {
if (_keyboardHeightSubscription != null) {
_keyboardHeightSubscription!.cancel();
}
}
}