diff --git a/packages/flutter/lib/src/foundation/platform.dart b/packages/flutter/lib/src/foundation/platform.dart
index 4854155da07..b722842e39e 100644
--- a/packages/flutter/lib/src/foundation/platform.dart
+++ b/packages/flutter/lib/src/foundation/platform.dart
@@ -11,6 +11,9 @@ enum TargetPlatform {
/// Android:
android,
+ /// Fuchsia:
+ fuchsia,
+
/// iOS:
iOS,
}
@@ -30,6 +33,8 @@ TargetPlatform get defaultTargetPlatform {
result = TargetPlatform.iOS;
} else if (Platform.isAndroid || Platform.isLinux) {
result = TargetPlatform.android;
+ } else if (Platform.operatingSystem == "fuchsia") {
+ result = TargetPlatform.fuchsia;
}
assert(() {
if (Platform.environment.containsKey('FLUTTER_TEST'))
diff --git a/packages/flutter/lib/src/material/app.dart b/packages/flutter/lib/src/material/app.dart
index 094b6116691..7d0fdc2a765 100644
--- a/packages/flutter/lib/src/material/app.dart
+++ b/packages/flutter/lib/src/material/app.dart
@@ -157,10 +157,10 @@ class _ScrollLikeCupertinoDelegate extends ScrollConfigurationDelegate {
}
class _ScrollLikeMountainViewDelegate extends ScrollConfigurationDelegate {
- const _ScrollLikeMountainViewDelegate();
+ const _ScrollLikeMountainViewDelegate(this.platform);
@override
- TargetPlatform get platform => TargetPlatform.android;
+ final TargetPlatform platform;
@override
ExtentScrollBehavior createScrollBehavior() => new OverscrollWhenScrollableBehavior(platform: TargetPlatform.android);
@@ -203,7 +203,9 @@ class _MaterialAppState extends State {
ScrollConfigurationDelegate _getScrollDelegate(TargetPlatform platform) {
switch (platform) {
case TargetPlatform.android:
- return const _ScrollLikeMountainViewDelegate();
+ return const _ScrollLikeMountainViewDelegate(TargetPlatform.android);
+ case TargetPlatform.fuchsia:
+ return const _ScrollLikeMountainViewDelegate(TargetPlatform.fuchsia);
case TargetPlatform.iOS:
return const _ScrollLikeCupertinoDelegate();
}
diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart
index 80430605d02..4878b58cc32 100644
--- a/packages/flutter/lib/src/material/app_bar.dart
+++ b/packages/flutter/lib/src/material/app_bar.dart
@@ -254,6 +254,7 @@ class AppBar extends StatelessWidget {
assert(themeData.platform != null);
switch (themeData.platform) {
case TargetPlatform.android:
+ case TargetPlatform.fuchsia:
return false;
case TargetPlatform.iOS:
return true;
diff --git a/packages/flutter/lib/src/material/flexible_space_bar.dart b/packages/flutter/lib/src/material/flexible_space_bar.dart
index faf679bda5c..54d3fb67ffa 100644
--- a/packages/flutter/lib/src/material/flexible_space_bar.dart
+++ b/packages/flutter/lib/src/material/flexible_space_bar.dart
@@ -64,6 +64,7 @@ class _FlexibleSpaceBarState extends State {
assert(theme.platform != null);
switch (theme.platform) {
case TargetPlatform.android:
+ case TargetPlatform.fuchsia:
return false;
case TargetPlatform.iOS:
return true;
diff --git a/packages/flutter/lib/src/widgets/scroll_behavior.dart b/packages/flutter/lib/src/widgets/scroll_behavior.dart
index 51dc774311d..562fbac97c0 100644
--- a/packages/flutter/lib/src/widgets/scroll_behavior.dart
+++ b/packages/flutter/lib/src/widgets/scroll_behavior.dart
@@ -75,6 +75,7 @@ abstract class ScrollBehavior {
assert(platform != null);
switch (platform) {
case TargetPlatform.android:
+ case TargetPlatform.fuchsia:
return _kScrollDragMountainView;
case TargetPlatform.iOS:
return _kScrollDragCupertino;