Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
36a8f0f2
Unverified
Commit
36a8f0f2
authored
Feb 08, 2022
by
Marcel Kirchhoff
Committed by
GitHub
Feb 08, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RenderIndexedStack - Mark invisible children as offstage in debugDescribeProperties (#96639)
parent
3facdb87
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
0 deletions
+44
-0
stack.dart
packages/flutter/lib/src/rendering/stack.dart
+16
-0
stack_test.dart
packages/flutter/test/rendering/stack_test.dart
+28
-0
No files found.
packages/flutter/lib/src/rendering/stack.dart
View file @
36a8f0f2
...
...
@@ -749,4 +749,20 @@ class RenderIndexedStack extends RenderStack {
super
.
debugFillProperties
(
properties
);
properties
.
add
(
IntProperty
(
'index'
,
index
));
}
@override
List
<
DiagnosticsNode
>
debugDescribeChildren
()
{
final
List
<
DiagnosticsNode
>
children
=
<
DiagnosticsNode
>[];
int
i
=
0
;
RenderObject
?
child
=
firstChild
;
while
(
child
!=
null
)
{
children
.
add
(
child
.
toDiagnosticsNode
(
name:
'child
${i + 1}
'
,
style:
i
!=
index
!
?
DiagnosticsTreeStyle
.
offstage
:
null
,
));
child
=
(
child
.
parentData
!
as
StackParentData
).
nextSibling
;
i
+=
1
;
}
return
children
;
}
}
packages/flutter/test/rendering/stack_test.dart
View file @
36a8f0f2
...
...
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:flutter/foundation.dart'
;
import
'package:flutter/rendering.dart'
;
import
'package:flutter_test/flutter_test.dart'
;
...
...
@@ -118,6 +119,33 @@ void main() {
expect
(
visitedChildren
.
first
,
child2
);
});
test
(
'debugDescribeChildren marks invisible children as offstage'
,
()
{
final
RenderBox
child1
=
RenderConstrainedBox
(
additionalConstraints:
BoxConstraints
.
tight
(
const
Size
(
100.0
,
100.0
)),
);
final
RenderBox
child2
=
RenderConstrainedBox
(
additionalConstraints:
BoxConstraints
.
tight
(
const
Size
(
100.0
,
100.0
)),
);
final
RenderBox
child3
=
RenderConstrainedBox
(
additionalConstraints:
BoxConstraints
.
tight
(
const
Size
(
100.0
,
100.0
)),
);
final
RenderBox
stack
=
RenderIndexedStack
(
index:
2
,
children:
<
RenderBox
>[
child1
,
child2
,
child3
],
);
final
List
<
DiagnosticsNode
>
diagnosticNodes
=
stack
.
debugDescribeChildren
();
expect
(
diagnosticNodes
[
0
].
name
,
'child 1'
);
expect
(
diagnosticNodes
[
0
].
style
,
DiagnosticsTreeStyle
.
offstage
);
expect
(
diagnosticNodes
[
1
].
name
,
'child 2'
);
expect
(
diagnosticNodes
[
1
].
style
,
DiagnosticsTreeStyle
.
offstage
);
expect
(
diagnosticNodes
[
2
].
name
,
'child 3'
);
expect
(
diagnosticNodes
[
2
].
style
,
DiagnosticsTreeStyle
.
sparse
);
});
});
// More tests in ../widgets/stack_test.dart
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment