_SearchBarState should dispose FocusNode, if it created it. (#133947)

This commit is contained in:
Polina Cherkasova 2023-09-05 13:12:28 -07:00 committed by GitHub
parent 7cdf314d06
commit c9f70e9fd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View File

@ -1179,6 +1179,9 @@ class _SearchBarState extends State<SearchBar> {
@override @override
void dispose() { void dispose() {
_internalStatesController.dispose(); _internalStatesController.dispose();
if (widget.focusNode == null) {
_focusNode.dispose();
}
super.dispose(); super.dispose();
} }

View File

@ -6,9 +6,10 @@ import 'dart:ui';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() { void main() {
testWidgets('SearchBar defaults', (WidgetTester tester) async { testWidgetsWithLeakTracking('SearchBar defaults', (WidgetTester tester) async {
final ThemeData theme = ThemeData(useMaterial3: true); final ThemeData theme = ThemeData(useMaterial3: true);
final ColorScheme colorScheme = theme.colorScheme; final ColorScheme colorScheme = theme.colorScheme;