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
1ff3a359
Commit
1ff3a359
authored
Dec 04, 2015
by
Ian Hickson
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #712 from Hixie/yak2-discriminating-transitions
Be more discerning with forward transitions
parents
15a13b89
cd19702c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
28 deletions
+43
-28
page.dart
packages/flutter/lib/src/material/page.dart
+2
-3
routes.dart
packages/flutter/lib/src/widgets/routes.dart
+6
-1
page_forward_transitions_test.dart
packages/unit/test/widget/page_forward_transitions_test.dart
+35
-24
No files found.
packages/flutter/lib/src/material/page.dart
View file @
1ff3a359
...
...
@@ -5,8 +5,6 @@
import
'package:flutter/animation.dart'
;
import
'package:flutter/widgets.dart'
;
import
'colors.dart'
;
class
_MaterialPageTransition
extends
TransitionWithChild
{
_MaterialPageTransition
({
Key
key
,
...
...
@@ -52,7 +50,8 @@ class MaterialPageRoute<T> extends PageRoute<T> {
final
WidgetBuilder
builder
;
Duration
get
transitionDuration
=>
kMaterialPageRouteTransitionDuration
;
Color
get
barrierColor
=>
Colors
.
black54
;
Color
get
barrierColor
=>
null
;
bool
canTransitionFrom
(
TransitionRoute
nextRoute
)
=>
false
;
Widget
buildPage
(
BuildContext
context
)
{
Widget
result
=
builder
(
context
);
...
...
packages/flutter/lib/src/widgets/routes.dart
View file @
1ff3a359
...
...
@@ -150,7 +150,7 @@ abstract class TransitionRoute<T> extends OverlayRoute<T> {
final
ProxyPerformance
forwardPerformance
=
new
ProxyPerformance
();
void
didPushNext
(
Route
nextRoute
)
{
if
(
nextRoute
is
TransitionRoute
)
{
if
(
nextRoute
is
TransitionRoute
&&
canTransitionTo
(
nextRoute
)
&&
nextRoute
.
canTransitionFrom
(
this
)
)
{
PerformanceView
current
=
forwardPerformance
.
masterPerformance
;
if
(
current
!=
null
)
{
if
(
current
is
TrainHoppingPerformance
)
{
...
...
@@ -177,6 +177,9 @@ abstract class TransitionRoute<T> extends OverlayRoute<T> {
super
.
didPushNext
(
nextRoute
);
}
bool
canTransitionTo
(
TransitionRoute
nextRoute
)
=>
true
;
bool
canTransitionFrom
(
TransitionRoute
nextRoute
)
=>
true
;
Widget
wrapTransition
(
BuildContext
context
,
Widget
child
)
{
return
buildForwardTransition
(
context
,
...
...
@@ -437,4 +440,6 @@ abstract class PageRoute<T> extends ModalRoute<T> {
})
:
super
(
completer:
completer
,
settings:
settings
);
bool
get
opaque
=>
true
;
bool
get
barrierDismissable
=>
false
;
bool
canTransitionTo
(
TransitionRoute
nextRoute
)
=>
nextRoute
is
PageRoute
;
bool
canTransitionFrom
(
TransitionRoute
nextRoute
)
=>
nextRoute
is
PageRoute
;
}
packages/unit/test/widget/page_forward_transitions_test.dart
View file @
1ff3a359
...
...
@@ -27,6 +27,14 @@ class TestTransition extends TransitionComponent {
}
}
class
TestRoute
<
T
>
extends
PageRoute
<
T
>
{
TestRoute
(
this
.
child
);
final
Widget
child
;
Duration
get
transitionDuration
=>
kMaterialPageRouteTransitionDuration
;
Color
get
barrierColor
=>
null
;
Widget
buildPage
(
BuildContext
context
)
=>
child
;
}
void
main
(
)
{
final
Duration
kTwoTenthsOfTheTransitionDuration
=
kMaterialPageRouteTransitionDuration
*
0.2
;
final
Duration
kFourTenthsOfTheTransitionDuration
=
kMaterialPageRouteTransitionDuration
*
0.4
;
...
...
@@ -57,30 +65,33 @@ void main() {
tester
.
pumpWidget
(
new
MaterialApp
(
routes:
<
String
,
RouteBuilder
>{
'/'
:
(
RouteArguments
args
)
{
return
new
Builder
(
key:
insideKey
,
builder:
(
BuildContext
context
)
{
PageRoute
route
=
ModalRoute
.
of
(
context
);
return
new
Column
([
new
TestTransition
(
childFirstHalf:
new
Text
(
'A'
),
childSecondHalf:
new
Text
(
'B'
),
performance:
route
.
performance
),
new
TestTransition
(
childFirstHalf:
new
Text
(
'C'
),
childSecondHalf:
new
Text
(
'D'
),
performance:
route
.
forwardPerformance
),
]);
}
);
},
'/2'
:
(
RouteArguments
args
)
=>
new
Text
(
'E'
),
'/3'
:
(
RouteArguments
args
)
=>
new
Text
(
'F'
),
'/4'
:
(
RouteArguments
args
)
=>
new
Text
(
'G'
),
onGenerateRoute:
(
NamedRouteSettings
settings
)
{
switch
(
settings
.
name
)
{
case
'/'
:
return
new
TestRoute
(
new
Builder
(
key:
insideKey
,
builder:
(
BuildContext
context
)
{
PageRoute
route
=
ModalRoute
.
of
(
context
);
return
new
Column
([
new
TestTransition
(
childFirstHalf:
new
Text
(
'A'
),
childSecondHalf:
new
Text
(
'B'
),
performance:
route
.
performance
),
new
TestTransition
(
childFirstHalf:
new
Text
(
'C'
),
childSecondHalf:
new
Text
(
'D'
),
performance:
route
.
forwardPerformance
),
]);
}
)
);
case
'/2'
:
return
new
TestRoute
(
new
Text
(
'E'
));
case
'/3'
:
return
new
TestRoute
(
new
Text
(
'F'
));
case
'/4'
:
return
new
TestRoute
(
new
Text
(
'G'
));
}
}
)
);
...
...
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