fix empty selection arrow when double clicked on empty read only textfield in ios (#34068)
This commit is contained in:
parent
991da4f77f
commit
38a5bbb44e
@ -115,6 +115,10 @@ class _TextSelectionToolbar extends StatelessWidget {
|
||||
items.add(onePhysicalPixelVerticalDivider);
|
||||
items.add(_buildToolbarButton(localizations.selectAllButtonLabel, handleSelectAll));
|
||||
}
|
||||
// If there is no option available, build an empty widget.
|
||||
if (items.isEmpty) {
|
||||
return Container(width: 0.0, height: 0.0);
|
||||
}
|
||||
|
||||
const Widget padding = Padding(padding: EdgeInsets.only(bottom: 10.0));
|
||||
|
||||
|
@ -49,6 +49,11 @@ class _TextSelectionToolbar extends StatelessWidget {
|
||||
if (handleSelectAll != null)
|
||||
items.add(FlatButton(child: Text(localizations.selectAllButtonLabel), onPressed: handleSelectAll));
|
||||
|
||||
// If there is no option available, build an empty widget.
|
||||
if (items.isEmpty) {
|
||||
return Container(width: 0.0, height: 0.0);
|
||||
}
|
||||
|
||||
return Material(
|
||||
elevation: 1.0,
|
||||
child: Container(
|
||||
|
@ -854,6 +854,55 @@ void main() {
|
||||
expect(find.text('CUT'), findsNothing);
|
||||
});
|
||||
|
||||
testWidgets('text field build empty tool bar when no options available ios', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
theme: ThemeData(platform: TargetPlatform.iOS),
|
||||
home: const Material(
|
||||
child: TextField(
|
||||
readOnly: true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
await tester.tap(find.byType(TextField));
|
||||
await tester.pump(const Duration(milliseconds: 50));
|
||||
|
||||
await tester.tap(find.byType(TextField));
|
||||
// Wait for context menu to be built.
|
||||
await tester.pumpAndSettle();
|
||||
final RenderBox container = tester.renderObject(find.descendant(
|
||||
of: find.byType(FadeTransition),
|
||||
matching: find.byType(Container),
|
||||
));
|
||||
expect(container.size, Size.zero);
|
||||
});
|
||||
|
||||
testWidgets('text field build empty tool bar when no options available android', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(
|
||||
const MaterialApp(
|
||||
home: Material(
|
||||
child: TextField(
|
||||
readOnly: true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
await tester.tap(find.byType(TextField));
|
||||
await tester.pump(const Duration(milliseconds: 50));
|
||||
|
||||
await tester.tap(find.byType(TextField));
|
||||
// Wait for context menu to be built.
|
||||
await tester.pumpAndSettle();
|
||||
final RenderBox container = tester.renderObject(find.descendant(
|
||||
of: find.byType(FadeTransition),
|
||||
matching: find.byType(Container),
|
||||
));
|
||||
expect(container.size, Size.zero);
|
||||
});
|
||||
|
||||
testWidgets('Sawping controllers should update selection', (WidgetTester tester) async {
|
||||
TextEditingController controller = TextEditingController(text: 'readonly');
|
||||
final OverlayEntry entry = OverlayEntry(
|
||||
|
Loading…
x
Reference in New Issue
Block a user