dropdown_banner 1.3.0 dropdown_banner: ^1.3.0 copied to clipboard
Manages the creation and animation of banner ui elements that are useful for displaying warnings and updates to users.
import 'package:flutter/material.dart';
import 'package:dropdown_banner/dropdown_banner.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
final navigatorKey = GlobalKey<NavigatorState>();
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or simply save your changes to "hot reload" in a Flutter IDE).
// Notice that the counter didn't reset back to zero; the application
// is not restarted.
primarySwatch: Colors.blueGrey,
),
home: DropdownBanner(
child: HomeWidget(),
navigatorKey: navigatorKey,
),
);
}
}
class HomeWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() => _HomeWidgetState();
}
class _HomeWidgetState extends State<HomeWidget> {
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: Text('DropdownBanner Example')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Spacer(flex: 1),
Text('Tap an option to see the banner in action'),
Padding(
padding: EdgeInsets.symmetric(vertical: 16),
child: GestureDetector(
onTapUp: (details) => DropdownBanner.showBanner(
text: 'Successfully saved your info!',
color: Colors.green,
textStyle: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold),
),
child: Container(
padding: EdgeInsets.symmetric(horizontal: 36, vertical: 8),
decoration: BoxDecoration(
color: Colors.green,
borderRadius: BorderRadius.circular(5),
boxShadow: [
BoxShadow(
blurRadius: 5, color: Colors.black.withOpacity(0.2))
],
),
child: Text(
'Test 1',
style: TextStyle(
color: Colors.white, fontWeight: FontWeight.bold),
),
),
),
),
Padding(
padding: EdgeInsets.symmetric(vertical: 16),
child: GestureDetector(
onTapUp: (details) => DropdownBanner.showBanner(
text: 'Failed to complete the request',
color: Colors.red,
textStyle: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold),
),
child: Container(
padding: EdgeInsets.symmetric(horizontal: 36, vertical: 8),
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(5),
boxShadow: [
BoxShadow(
blurRadius: 5, color: Colors.black.withOpacity(0.2))
],
),
child: Text(
'Test 2',
style: TextStyle(
color: Colors.white, fontWeight: FontWeight.bold),
),
),
),
),
Padding(
padding: EdgeInsets.symmetric(vertical: 16),
child: GestureDetector(
onTapUp: (details) => DropdownBanner.showBanner(
text:
'DropdownBanner has been added to your cart. You now have 15 items. Tap to checkout.',
color: Colors.black.withOpacity(0.8),
textStyle: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.normal),
tapCallback: () async => showDialog(
context: context,
builder: (context) => Dialog(
shape: RoundedRectangleBorder(
side: BorderSide(color: Colors.black),
borderRadius: BorderRadius.circular(10)),
child: Container(
margin: EdgeInsets.all(16),
child: Text(
'You did a thing! 🎉',
textAlign: TextAlign.center,
),
),
),
),
),
child: Container(
padding: EdgeInsets.symmetric(horizontal: 36, vertical: 8),
decoration: BoxDecoration(
color: Colors.black,
borderRadius: BorderRadius.circular(5),
boxShadow: [
BoxShadow(
blurRadius: 5, color: Colors.black.withOpacity(0.2))
],
),
child: Text(
'Test 3',
style: TextStyle(
color: Colors.white, fontWeight: FontWeight.bold),
),
),
),
),
Spacer(flex: 2),
],
),
),
);
}