mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Merge pull request #280 from collinjackson/new_dialog
Move fitness dialog into its own class
This commit is contained in:
commit
bbe01ebde0
@ -213,7 +213,46 @@ class FeedFragment extends StatefulComponent {
|
||||
);
|
||||
}
|
||||
|
||||
bool _isShowingDialog = false;
|
||||
void _handleActionButtonPressed() {
|
||||
setState(() {
|
||||
navigator.push(new DialogRoute(builder: (navigator, route) {
|
||||
return new AddItemDialog(navigator);
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
Widget buildFloatingActionButton() {
|
||||
switch (_fitnessMode) {
|
||||
case FitnessMode.feed:
|
||||
return new FloatingActionButton(
|
||||
child: new Icon(type: 'content/add', size: 24),
|
||||
onPressed: _handleActionButtonPressed
|
||||
);
|
||||
case FitnessMode.chart:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Widget build() {
|
||||
return new Scaffold(
|
||||
toolbar: buildToolBar(),
|
||||
body: buildBody(),
|
||||
snackBar: buildSnackBar(),
|
||||
floatingActionButton: buildFloatingActionButton(),
|
||||
drawer: buildDrawer()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class AddItemDialog extends StatefulComponent {
|
||||
AddItemDialog(this.navigator);
|
||||
|
||||
Navigator navigator;
|
||||
|
||||
void syncFields(AddItemDialog source) {
|
||||
this.navigator = source.navigator;
|
||||
}
|
||||
|
||||
String _addItemRoute;
|
||||
|
||||
void _handleAddItemRouteChanged(String routeName) {
|
||||
@ -222,7 +261,7 @@ class FeedFragment extends StatefulComponent {
|
||||
});
|
||||
}
|
||||
|
||||
Widget buildDialog() {
|
||||
Widget build() {
|
||||
// TODO(jackson): Internationalize
|
||||
Map<String, String> labels = {
|
||||
'/meals/new': 'Eat',
|
||||
@ -254,40 +293,4 @@ class FeedFragment extends StatefulComponent {
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
void _handleActionButtonPressed() {
|
||||
setState(() {
|
||||
_isShowingDialog = true;
|
||||
navigator.pushState(this, (_) {
|
||||
_isShowingDialog = false;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Widget buildFloatingActionButton() {
|
||||
switch (_fitnessMode) {
|
||||
case FitnessMode.feed:
|
||||
return new FloatingActionButton(
|
||||
child: new Icon(type: 'content/add', size: 24),
|
||||
onPressed: _handleActionButtonPressed
|
||||
);
|
||||
case FitnessMode.chart:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Widget build() {
|
||||
List<Widget> layers = [
|
||||
new Scaffold(
|
||||
toolbar: buildToolBar(),
|
||||
body: buildBody(),
|
||||
snackBar: buildSnackBar(),
|
||||
floatingActionButton: buildFloatingActionButton(),
|
||||
drawer: buildDrawer()
|
||||
)
|
||||
];
|
||||
if (_isShowingDialog)
|
||||
layers.add(buildDialog());
|
||||
return new Stack(layers);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user