mirror of
https://github.com/flutter/samples.git
synced 2025-11-11 15:28:44 +00:00
[Gallery] Fix directory structure (#312)
This commit is contained in:
93
gallery/lib/studies/starter/app.dart
Normal file
93
gallery/lib/studies/starter/app.dart
Normal file
@@ -0,0 +1,93 @@
|
||||
// Copyright 2019 The Flutter team. 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/material.dart';
|
||||
import 'package:gallery/data/gallery_options.dart';
|
||||
import 'package:gallery/l10n/gallery_localizations.dart';
|
||||
import 'package:gallery/layout/focus_traversal_policy.dart';
|
||||
import 'package:gallery/pages/home.dart' as home;
|
||||
import 'package:gallery/studies/starter/home.dart';
|
||||
|
||||
const _primaryColor = Color(0xFF6200EE);
|
||||
|
||||
class StarterApp extends StatefulWidget {
|
||||
const StarterApp({Key key, this.navigatorKey}) : super(key: key);
|
||||
|
||||
final GlobalKey<NavigatorState> navigatorKey;
|
||||
|
||||
@override
|
||||
_StarterAppState createState() => _StarterAppState();
|
||||
}
|
||||
|
||||
class _StarterAppState extends State<StarterApp> {
|
||||
FocusNode firstFocusNode;
|
||||
FocusNode lastFocusNode;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
firstFocusNode = FocusNode();
|
||||
lastFocusNode = FocusNode();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
firstFocusNode.dispose();
|
||||
lastFocusNode.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final backButtonFocusNode =
|
||||
home.InheritedFocusNodes.of(context).backButtonFocusNode;
|
||||
|
||||
return MaterialApp(
|
||||
navigatorKey: widget.navigatorKey,
|
||||
title: GalleryLocalizations.of(context).starterAppTitle,
|
||||
debugShowCheckedModeBanner: false,
|
||||
localizationsDelegates: GalleryLocalizations.localizationsDelegates,
|
||||
supportedLocales: GalleryLocalizations.supportedLocales,
|
||||
locale: GalleryOptions.of(context).locale,
|
||||
home: DefaultFocusTraversal(
|
||||
policy: EdgeChildrenFocusTraversalPolicy(
|
||||
firstFocusNodeOutsideScope: backButtonFocusNode,
|
||||
lastFocusNodeOutsideScope: backButtonFocusNode,
|
||||
firstFocusNodeInsideScope: firstFocusNode,
|
||||
lastFocusNodeInsideScope: lastFocusNode,
|
||||
),
|
||||
child: ApplyTextOptions(
|
||||
child: HomePage(
|
||||
firstFocusNode: firstFocusNode,
|
||||
lastFocusNode: lastFocusNode,
|
||||
),
|
||||
),
|
||||
),
|
||||
theme: ThemeData(
|
||||
primaryColor: _primaryColor,
|
||||
highlightColor: Colors.transparent,
|
||||
colorScheme: ColorScheme(
|
||||
primary: _primaryColor,
|
||||
primaryVariant: const Color(0xFF3700B3),
|
||||
secondary: const Color(0xFF03DAC6),
|
||||
secondaryVariant: const Color(0xFF018786),
|
||||
background: Colors.white,
|
||||
surface: Colors.white,
|
||||
onBackground: Colors.black,
|
||||
error: const Color(0xFFB00020),
|
||||
onError: Colors.white,
|
||||
onPrimary: Colors.white,
|
||||
onSecondary: Colors.black,
|
||||
onSurface: Colors.black,
|
||||
brightness: Brightness.light,
|
||||
),
|
||||
dividerTheme: DividerThemeData(
|
||||
thickness: 1,
|
||||
color: const Color(0xFFE5E5E5),
|
||||
),
|
||||
platform: GalleryOptions.of(context).platform,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user