From 497a52809dda625856657fd1a07dba8bef74d330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=98=B1?= <30322203+ksballetba@users.noreply.github.com> Date: Tue, 8 Nov 2022 01:45:56 +0800 Subject: [PATCH] Fix TextField/CupertinoTextField hint style overflow not work. (#114335) * fix text field hint style overflow not work, keep default ellipsis. * fix cupertino text field hint style overflow not work, keep default ellipsis. * add Cupertino placeholder style test. --- .../flutter/lib/src/cupertino/text_field.dart | 2 +- .../test/cupertino/text_field_test.dart | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/cupertino/text_field.dart b/packages/flutter/lib/src/cupertino/text_field.dart index a4d0db07761e..d16311568fb9 100644 --- a/packages/flutter/lib/src/cupertino/text_field.dart +++ b/packages/flutter/lib/src/cupertino/text_field.dart @@ -1133,7 +1133,7 @@ class _CupertinoTextFieldState extends State with Restoratio child: Text( widget.placeholder!, maxLines: widget.maxLines, - overflow: TextOverflow.ellipsis, + overflow: placeholderStyle.overflow ?? TextOverflow.ellipsis, style: placeholderStyle, textAlign: widget.textAlign, ), diff --git a/packages/flutter/test/cupertino/text_field_test.dart b/packages/flutter/test/cupertino/text_field_test.dart index 843d3e5a7ab0..aa612ff52dc5 100644 --- a/packages/flutter/test/cupertino/text_field_test.dart +++ b/packages/flutter/test/cupertino/text_field_test.dart @@ -7485,4 +7485,29 @@ void main() { expect(controller.text, cutValue); } }); + + testWidgets('placeholder style overflow works', (WidgetTester tester) async { + final String placeholder = 'hint text' * 20; + const TextStyle placeholderStyle = TextStyle( + fontFamily: 'Ahem', + fontSize: 14.0, + overflow: TextOverflow.fade, + ); + + await tester.pumpWidget( + CupertinoApp( + home: Center( + child: CupertinoTextField( + placeholder: placeholder, + placeholderStyle: placeholderStyle, + ), + ), + ), + ); + await tester.pumpAndSettle(); + final Finder placeholderFinder = find.text(placeholder); + final Text placeholderWidget = tester.widget(placeholderFinder); + expect(placeholderWidget.overflow, placeholderStyle.overflow); + expect(placeholderWidget.style!.overflow, placeholderStyle.overflow); + }); }