Skip to content

Commit 0d3edf9

Browse files
authored
Merge pull request #7 from durbek03/fix_focusnode
bug with focusNode dispose() fixed
2 parents 29a0c36 + e58bb67 commit 0d3edf9

File tree

5 files changed

+12
-10
lines changed

5 files changed

+12
-10
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Add the `ios_search_appbar` package to your `pubspec.yaml` file:
99

1010
```yaml
1111
dependencies:
12-
ios_search_appbar: ^1.0.2
12+
ios_search_appbar: ^1.0.3
1313

1414
```
1515
Import the package in your Dart code:

lib/src/cupertino_search_appbar.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,11 @@ class _CupertinoSearchAppBarState extends State<CupertinoSearchAppBar> {
6161

6262
@override
6363
void dispose() {
64+
super.dispose();
6465
scrollController.dispose();
65-
SearchFieldProperties.focusNode.dispose();
66+
SearchFieldProperties.focusNode?.dispose();
67+
SearchFieldProperties.focusNode = null;
6668
SearchFieldProperties.controller.dispose();
67-
super.dispose();
6869
}
6970

7071

@@ -78,8 +79,8 @@ class _CupertinoSearchAppBarState extends State<CupertinoSearchAppBar> {
7879
Widget build(BuildContext context) {
7980
return GestureDetector(
8081
onTap: () {
81-
if (SearchFieldProperties.focusNode.hasFocus) {
82-
SearchFieldProperties.focusNode.unfocus();
82+
if (SearchFieldProperties.focusNode!.hasFocus) {
83+
SearchFieldProperties.focusNode!.unfocus();
8384
}
8485
},
8586
child: NotificationListener(

lib/src/properties/search_field_props.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ class SearchFieldProperties {
3636
}
3737
if (focusNode != null) {
3838
SearchFieldProperties.focusNode = focusNode;
39+
} else {
40+
SearchFieldProperties.focusNode = FocusNode();
3941
}
4042
}
4143

4244
static TextEditingController controller = TextEditingController();
43-
static FocusNode focusNode = FocusNode();
45+
static FocusNode? focusNode;
4446

4547
final ValueChanged<String>? onChanged;
4648
final ValueChanged<String>? onSubmitted;

lib/src/search_field.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ class _SearchFieldState extends State<SearchField> {
4545

4646
@override
4747
Widget build(BuildContext context) {
48-
print("qwe media width ${MediaQuery.of(context).size.width}");
4948
return ValueListenableBuilder(
5049
valueListenable: widget.viewModel.searchHeight,
5150
builder: (BuildContext context, double value, Widget? child) {
@@ -98,7 +97,7 @@ class _SearchFieldState extends State<SearchField> {
9897
child: CupertinoSearchTextField(
9998
onSuffixTap: () {
10099
SearchFieldProperties.controller.text = "";
101-
SearchFieldProperties.focusNode.requestFocus();
100+
SearchFieldProperties.focusNode!.requestFocus();
102101
widget.properties.onSuffixTap?.call();
103102
},
104103
suffixIcon: widget.properties.suffixIcon,
@@ -147,7 +146,7 @@ class _SearchFieldState extends State<SearchField> {
147146
onTap: () async {
148147
widget.properties.onCancelTap?.call();
149148
await widget.viewModel.cancelSearch(
150-
SearchFieldProperties.controller, widget.scrollController, SearchFieldProperties.focusNode);
149+
SearchFieldProperties.controller, widget.scrollController, SearchFieldProperties.focusNode!);
151150
widget.viewModel.changeAppBarCollapseState(false, SearchFieldProperties.controller.text);
152151
widget.viewModel.changeCancelSearch(false);
153152
},

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: ios_search_appbar
22
description: iOS-style collapsible app bar with beautifully animated search bar
3-
version: 1.0.2
3+
version: 1.0.3
44
homepage: https://github.com/durbek03/ios_search_appbar
55

66
environment:

0 commit comments

Comments
 (0)