@@ -919,5 +919,51 @@ void main() {
919
919
expect (horizontalController.position.pixels, 0.0 );
920
920
});
921
921
});
922
+
923
+ testWidgets ('Dismiss keyboard onDrag and keep dismissed on drawer opened' , (WidgetTester tester) async {
924
+ late final TwoDimensionalChildBuilderDelegate delegate;
925
+ final GlobalKey <ScaffoldState > scaffoldKey = GlobalKey <ScaffoldState >();
926
+ addTearDown (() => delegate.dispose ());
927
+
928
+ await tester.pumpWidget (
929
+ MaterialApp (
930
+ home: Scaffold (
931
+ key: scaffoldKey,
932
+ drawer: Container (),
933
+ body: Column (
934
+ children: < Widget > [
935
+ const TextField (),
936
+ Expanded (
937
+ child: SimpleBuilderTableView (
938
+ keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior .onDrag,
939
+ delegate: delegate = TwoDimensionalChildBuilderDelegate (
940
+ builder: _testChildBuilder,
941
+ maxXIndex: 99 ,
942
+ maxYIndex: 99 ,
943
+ ),
944
+ ),
945
+ ),
946
+ ]
947
+ ),
948
+ ),
949
+ ),
950
+ );
951
+
952
+ await tester.pumpAndSettle ();
953
+
954
+ expect (tester.testTextInput.isVisible, isFalse);
955
+ final Finder finder = find.byType (TextField ).first;
956
+ await tester.tap (finder);
957
+ expect (tester.testTextInput.isVisible, isTrue);
958
+
959
+ await tester.drag (find.byType (SimpleBuilderTableView ).first, const Offset (- 40.0 , - 40.0 ));
960
+ await tester.pumpAndSettle ();
961
+
962
+ expect (tester.testTextInput.isVisible, isFalse);
963
+ scaffoldKey.currentState! .openDrawer ();
964
+ await tester.pumpAndSettle ();
965
+
966
+ expect (tester.testTextInput.isVisible, isFalse);
967
+ });
922
968
});
923
969
}
0 commit comments