close _keyboardVisibilityController.onChange in dispose

pull/51/head
li3317 4 years ago
parent c816a765c3
commit e8a3d4c222
  1. 16
      lib/widgets/raw_editor.dart

@ -1,3 +1,4 @@
import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@ -125,6 +126,7 @@ class RawEditorState extends EditorState
CursorCont _cursorCont; CursorCont _cursorCont;
ScrollController _scrollController; ScrollController _scrollController;
KeyboardVisibilityController _keyboardVisibilityController; KeyboardVisibilityController _keyboardVisibilityController;
StreamSubscription<bool> _keyboardVisibilitySubscription;
KeyboardListener _keyboardListener; KeyboardListener _keyboardListener;
bool _didAutoFocus = false; bool _didAutoFocus = false;
bool _keyboardVisible = false; bool _keyboardVisible = false;
@ -698,12 +700,13 @@ class RawEditorState extends EditorState
); );
_keyboardVisibilityController = KeyboardVisibilityController(); _keyboardVisibilityController = KeyboardVisibilityController();
_keyboardVisibilityController.onChange.listen((bool visible) { _keyboardVisibilitySubscription =
_keyboardVisible = visible; _keyboardVisibilityController.onChange.listen((bool visible) {
if (visible) { _keyboardVisible = visible;
_onChangeTextEditingValue(); if (visible) {
} _onChangeTextEditingValue();
}); }
});
_focusAttachment = widget.focusNode.attach(context, _focusAttachment = widget.focusNode.attach(context,
onKey: (node, event) => _keyboardListener.handleRawKeyEvent(event)); onKey: (node, event) => _keyboardListener.handleRawKeyEvent(event));
@ -865,6 +868,7 @@ class RawEditorState extends EditorState
@override @override
void dispose() { void dispose() {
closeConnectionIfNeeded(); closeConnectionIfNeeded();
_keyboardVisibilitySubscription.cancel();
assert(!hasConnection); assert(!hasConnection);
_selectionOverlay?.dispose(); _selectionOverlay?.dispose();
_selectionOverlay = null; _selectionOverlay = null;

Loading…
Cancel
Save