Prevent text from overflowing in OutlineButton and OutlinedButton label. (#70872)
This commit is contained in:
parent
29d33cc38e
commit
7a0e3a309f
@ -310,7 +310,7 @@ class _OutlineButtonWithIcon extends OutlineButton with MaterialButtonWithIconMi
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
icon,
|
icon,
|
||||||
const SizedBox(width: 8.0),
|
const SizedBox(width: 8.0),
|
||||||
label,
|
Flexible(child: label),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -345,7 +345,7 @@ class _OutlinedButtonWithIconChild extends StatelessWidget {
|
|||||||
final double gap = scale <= 1 ? 8 : lerpDouble(8, 4, math.min(scale - 1, 1))!;
|
final double gap = scale <= 1 ? 8 : lerpDouble(8, 4, math.min(scale - 1, 1))!;
|
||||||
return Row(
|
return Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[icon, SizedBox(width: gap), label],
|
children: <Widget>[icon, SizedBox(width: gap), Flexible(child: label)],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1222,6 +1222,22 @@ void main() {
|
|||||||
expect(box.size, equals(const Size(76, 36)));
|
expect(box.size, equals(const Size(76, 36)));
|
||||||
expect(childRect, equals(const Rect.fromLTRB(372.0, 293.0, 428.0, 307.0)));
|
expect(childRect, equals(const Rect.fromLTRB(372.0, 293.0, 428.0, 307.0)));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('Text does not overflow in OutlineButton label', (WidgetTester tester) async {
|
||||||
|
await tester.pumpWidget(
|
||||||
|
Directionality(
|
||||||
|
textDirection: TextDirection.ltr,
|
||||||
|
child: MouseRegion(
|
||||||
|
cursor: SystemMouseCursors.forbidden,
|
||||||
|
child: OutlineButton.icon(
|
||||||
|
icon: const Icon(Icons.add),
|
||||||
|
label: const Text('this is a very long text used to check whether an overflow occurs or not'),
|
||||||
|
onPressed: () {},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
PhysicalModelLayer _findPhysicalLayer(Element element) {
|
PhysicalModelLayer _findPhysicalLayer(Element element) {
|
||||||
|
@ -1212,6 +1212,22 @@ void main() {
|
|||||||
);
|
);
|
||||||
expect(paddingWidget.padding, const EdgeInsets.all(22));
|
expect(paddingWidget.padding, const EdgeInsets.all(22));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('Text does not overflow in OutlinedButton label', (WidgetTester tester) async {
|
||||||
|
await tester.pumpWidget(
|
||||||
|
Directionality(
|
||||||
|
textDirection: TextDirection.ltr,
|
||||||
|
child: MouseRegion(
|
||||||
|
cursor: SystemMouseCursors.forbidden,
|
||||||
|
child: OutlinedButton.icon(
|
||||||
|
icon: const Icon(Icons.add),
|
||||||
|
label: const Text('this is a very long text used to check whether an overflow occurs or not'),
|
||||||
|
onPressed: () {},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
PhysicalModelLayer _findPhysicalLayer(Element element) {
|
PhysicalModelLayer _findPhysicalLayer(Element element) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user