TextFormField cursor params (#24635)
* cursor fields on textformfield
* Test pass-through of cursor properties
diff --git a/packages/flutter/lib/src/material/text_form_field.dart b/packages/flutter/lib/src/material/text_form_field.dart
index 4a4ec2c..b058523 100644
--- a/packages/flutter/lib/src/material/text_form_field.dart
+++ b/packages/flutter/lib/src/material/text_form_field.dart
@@ -95,6 +95,9 @@
FormFieldValidator<String> validator,
List<TextInputFormatter> inputFormatters,
bool enabled = true,
+ double cursorWidth = 2.0,
+ Radius cursorRadius,
+ Color cursorColor,
Brightness keyboardAppearance,
EdgeInsets scrollPadding = const EdgeInsets.all(20.0),
bool enableInteractiveSelection = true,
@@ -141,6 +144,9 @@
onSubmitted: onFieldSubmitted,
inputFormatters: inputFormatters,
enabled: enabled,
+ cursorWidth: cursorWidth,
+ cursorRadius: cursorRadius,
+ cursorColor: cursorColor,
scrollPadding: scrollPadding,
keyboardAppearance: keyboardAppearance,
enableInteractiveSelection: enableInteractiveSelection,
diff --git a/packages/flutter/test/material/text_form_field_test.dart b/packages/flutter/test/material/text_form_field_test.dart
index 4ad6c40..c40af91 100644
--- a/packages/flutter/test/material/text_form_field_test.dart
+++ b/packages/flutter/test/material/text_form_field_test.dart
@@ -71,6 +71,34 @@
expect(textFieldWidget.onEditingComplete, onEditingComplete);
});
+ testWidgets('Passes cursor attributes to underlying TextField', (WidgetTester tester) async {
+ const double cursorWidth = 3.14;
+ const Radius cursorRadius = Radius.circular(4);
+ const Color cursorColor = Colors.purple;
+
+ await tester.pumpWidget(
+ MaterialApp(
+ home: Material(
+ child: Center(
+ child: TextFormField(
+ cursorWidth: cursorWidth,
+ cursorRadius: cursorRadius,
+ cursorColor: cursorColor,
+ ),
+ ),
+ ),
+ ),
+ );
+
+ final Finder textFieldFinder = find.byType(TextField);
+ expect(textFieldFinder, findsOneWidget);
+
+ final TextField textFieldWidget = tester.widget(textFieldFinder);
+ expect(textFieldWidget.cursorWidth, cursorWidth);
+ expect(textFieldWidget.cursorRadius, cursorRadius);
+ expect(textFieldWidget.cursorColor, cursorColor);
+ });
+
testWidgets('onFieldSubmit callbacks are called', (WidgetTester tester) async {
bool _called = false;