Table implements redepth (#162282)
As title ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ ] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
This commit is contained in:
parent
f25b4b77ff
commit
b5c3a9fa61
@ -761,6 +761,12 @@ class RenderTable extends RenderBox {
|
||||
}
|
||||
}
|
||||
|
||||
@protected
|
||||
@override
|
||||
void redepthChildren() {
|
||||
visitChildren(redepthChild);
|
||||
}
|
||||
|
||||
@override
|
||||
double computeMinIntrinsicWidth(double height) {
|
||||
assert(_children.length == rows * columns);
|
||||
|
@ -71,6 +71,36 @@ void main() {
|
||||
await run(TextDirection.rtl);
|
||||
});
|
||||
|
||||
testWidgets('Table widget calculate depth', (WidgetTester tester) async {
|
||||
final UniqueKey outerTable = UniqueKey();
|
||||
final UniqueKey innerTable = UniqueKey();
|
||||
await tester.pumpWidget(
|
||||
Directionality(
|
||||
textDirection: TextDirection.ltr,
|
||||
child: Table(
|
||||
key: outerTable,
|
||||
children: <TableRow>[
|
||||
TableRow(
|
||||
children: <Widget>[
|
||||
Table(
|
||||
key: innerTable,
|
||||
children: const <TableRow>[
|
||||
TableRow(children: <Widget>[Text('AAAAAA'), Text('B'), Text('C')]),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
final RenderObject outerTableRenderObject = tester.renderObject(find.byKey(outerTable));
|
||||
final RenderObject innerTableRenderObject = tester.renderObject(find.byKey(innerTable));
|
||||
final RenderObject textRenderObject = tester.renderObject(find.text('AAAAAA'));
|
||||
expect(outerTableRenderObject.depth + 1, innerTableRenderObject.depth);
|
||||
expect(innerTableRenderObject.depth + 1, textRenderObject.depth);
|
||||
});
|
||||
|
||||
testWidgets('Table widget can be detached and re-attached', (WidgetTester tester) async {
|
||||
final Widget table = Table(
|
||||
key: GlobalKey(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user