mirror of
https://github.com/flutter/flutter
synced 2024-10-13 11:42:54 +00:00
Fix ListTile assert when layout at zero size (#66798)
* Fix ListTile assert when layout at zero size #66636
This commit is contained in:
parent
d914d5d2f9
commit
8211aaa2ae
|
@ -1567,13 +1567,13 @@ class _RenderListTile extends RenderBox {
|
|||
final Size leadingSize = _layoutBox(leading, iconConstraints);
|
||||
final Size trailingSize = _layoutBox(trailing, iconConstraints);
|
||||
assert(
|
||||
tileWidth != leadingSize.width,
|
||||
tileWidth != leadingSize.width || tileWidth == 0.0,
|
||||
'Leading widget consumes entire tile width. Please use a sized widget, '
|
||||
'or consider replacing ListTile with a custom widget '
|
||||
'(see https://api.flutter.dev/flutter/material/ListTile-class.html#material.ListTile.4)'
|
||||
);
|
||||
assert(
|
||||
tileWidth != trailingSize.width,
|
||||
tileWidth != trailingSize.width || tileWidth == 0.0,
|
||||
'Trailing widget consumes entire tile width. Please use a sized widget, '
|
||||
'or consider replacing ListTile with a custom widget '
|
||||
'(see https://api.flutter.dev/flutter/material/ListTile-class.html#material.ListTile.4)'
|
||||
|
|
|
@ -1692,4 +1692,26 @@ void main() {
|
|||
coloredBox = tester.widget(find.byType(ColoredBox));
|
||||
expect(coloredBox.color, selectedTileColor);
|
||||
});
|
||||
|
||||
testWidgets('ListTile layout at zero size', (WidgetTester tester) async {
|
||||
// Regression test for https://github.com/flutter/flutter/issues/66636
|
||||
const Key key = Key('key');
|
||||
|
||||
await tester.pumpWidget(const MaterialApp(
|
||||
home: Scaffold(
|
||||
body: SizedBox(
|
||||
width: 0.0,
|
||||
height: 0.0,
|
||||
child: ListTile(
|
||||
key: key,
|
||||
tileColor: Colors.green,
|
||||
),
|
||||
),
|
||||
),
|
||||
));
|
||||
|
||||
final RenderBox renderBox = tester.renderObject(find.byKey(key));
|
||||
expect(renderBox.size.width, equals(0.0));
|
||||
expect(renderBox.size.height, equals(0.0));
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue