mirror of
https://github.com/flutter/samples.git
synced 2025-11-11 07:18:15 +00:00
Add flutter_web samples (#75)
This commit is contained in:
committed by
Andrew Brogdon
parent
42f2dce01b
commit
3fe927cb29
43
web/gallery/lib/demo/shrine_demo.dart
Normal file
43
web/gallery/lib/demo/shrine_demo.dart
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright 2018 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'package:flutter_web/material.dart';
|
||||
|
||||
import 'shrine/shrine_home.dart' show ShrineHome;
|
||||
import 'shrine/shrine_theme.dart' show ShrineTheme;
|
||||
|
||||
// This code would ordinarily be part of the MaterialApp's home. It's being
|
||||
// used by the ShrineDemo and by each route pushed from there because this
|
||||
// isn't a standalone app with its own main() and MaterialApp.
|
||||
Widget buildShrine(BuildContext context, Widget child) {
|
||||
return Theme(
|
||||
data: ThemeData(
|
||||
primarySwatch: Colors.grey,
|
||||
iconTheme: const IconThemeData(color: Color(0xFF707070)),
|
||||
platform: Theme.of(context).platform,
|
||||
),
|
||||
child: ShrineTheme(child: child));
|
||||
}
|
||||
|
||||
// In a standalone version of this app, MaterialPageRoute<T> could be used directly.
|
||||
class ShrinePageRoute<T> extends MaterialPageRoute<T> {
|
||||
ShrinePageRoute({
|
||||
WidgetBuilder builder,
|
||||
RouteSettings settings,
|
||||
}) : super(builder: builder, settings: settings);
|
||||
|
||||
@override
|
||||
Widget buildPage(BuildContext context, Animation<double> animation,
|
||||
Animation<double> secondaryAnimation) {
|
||||
return buildShrine(
|
||||
context, super.buildPage(context, animation, secondaryAnimation));
|
||||
}
|
||||
}
|
||||
|
||||
class ShrineDemo extends StatelessWidget {
|
||||
static const String routeName = '/shrine'; // Used by the Gallery app.
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => buildShrine(context, ShrineHome());
|
||||
}
|
||||
Reference in New Issue
Block a user