-
-
Notifications
You must be signed in to change notification settings - Fork 86
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
.DS_Store | ||
.dart_tool/ | ||
|
||
.packages | ||
.pub/ | ||
|
||
build/ |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# This file tracks properties of this Flutter project. | ||
# Used by Flutter tool to assess capabilities and perform upgrades etc. | ||
# | ||
# This file should be version controlled and should not be manually edited. | ||
|
||
version: | ||
revision: 45d2b15d97e1dd6f3a04a9139678c9631aaff6ba | ||
channel: master | ||
|
||
project_type: plugin |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## 1.0.0 | ||
|
||
* Creating new widget |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TODO: Add your license here. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
# mobile_sidebar | ||
|
||
A Flutter plugin to show a sidebar on tablet and desktop then a list or gridview on mobile. | ||
|
||
|
||
## Example | ||
|
||
``` dart | ||
import 'dart:io'; | ||
import 'package:flutter/foundation.dart'; | ||
import 'package:flutter/material.dart'; | ||
import 'package:flutter/widgets.dart'; | ||
import 'package:mobile_sidebar/mobile_sidebar.dart'; | ||
void main() { | ||
_setTargetPlatformForDesktop(); | ||
runApp(MyApp()); | ||
} | ||
/// If the current platform is desktop, override the default platform to | ||
/// a supported platform (iOS for macOS, Android for Linux and Windows). | ||
/// Otherwise, do nothing. | ||
void _setTargetPlatformForDesktop() { | ||
TargetPlatform targetPlatform; | ||
if (Platform.isMacOS) { | ||
targetPlatform = TargetPlatform.iOS; | ||
} else if (Platform.isLinux || Platform.isWindows) { | ||
targetPlatform = TargetPlatform.android; | ||
} | ||
if (targetPlatform != null) { | ||
debugDefaultTargetPlatformOverride = targetPlatform; | ||
} | ||
} | ||
class MyApp extends StatelessWidget { | ||
@override | ||
Widget build(BuildContext context) { | ||
return MaterialApp( | ||
home: new HomeScreen(), | ||
); | ||
} | ||
} | ||
class HomeScreen extends StatefulWidget { | ||
@override | ||
_HomeScreenState createState() => _HomeScreenState(); | ||
} | ||
class _HomeScreenState extends State<HomeScreen> { | ||
bool _showList = false; | ||
final _breakpoint = 800.0; | ||
@override | ||
Widget build(BuildContext context) { | ||
return Scaffold( | ||
appBar: AppBar( | ||
title: Text('Mobile Side Menu Example'), | ||
actions: <Widget>[ | ||
if (MediaQuery.of(context).size.width < _breakpoint) ...[ | ||
IconButton( | ||
icon: Icon(_showList ? Icons.grid_on : Icons.grid_off), | ||
onPressed: () { | ||
if (mounted) | ||
setState(() { | ||
_showList = !_showList; | ||
}); | ||
}, | ||
) | ||
] | ||
], | ||
), | ||
body: MobileSidebar( | ||
items: <MenuItem>[ | ||
MenuItem( | ||
icon: Icons.edit, | ||
color: Colors.black, | ||
title: 'Manage', | ||
subtitle: 'Edit, Share, Delete', | ||
child: Container(color: Colors.blueAccent), | ||
), | ||
MenuItem( | ||
icon: Icons.event, | ||
color: Colors.blueAccent, | ||
title: 'Tasks', | ||
subtitle: 'Personal Tasks', | ||
child: Container(color: Colors.purpleAccent), | ||
), | ||
MenuItem( | ||
icon: Icons.timer, | ||
color: Colors.blueGrey, | ||
title: 'Log', | ||
subtitle: 'History of Results', | ||
child: Container(color: Colors.black), | ||
), | ||
MenuItem( | ||
icon: Icons.star, | ||
color: Colors.amber, | ||
title: 'Favorites', | ||
subtitle: 'Custom List', | ||
child: Container(color: Colors.yellowAccent), | ||
), | ||
], | ||
showList: _showList, | ||
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, | ||
floatingActionButton: FloatingActionButton.extended( | ||
backgroundColor: Colors.redAccent, | ||
heroTag: 'create-contact', | ||
label: Text('Add new item'), | ||
icon: Icon(Icons.add), | ||
onPressed: () {}, | ||
), | ||
), | ||
); | ||
} | ||
} | ||
``` |