Filter by Widgets


How to create a persistent bottom sheet in Flutter?

This Article is posted by seven.srikanth at 05-06-2019 03:45:02


In this article, I'm going to share an example code for persistent bottom sheet in Flutter.
Before seeing this code, here is the output of this app. 
Key things to note here are that touches on the empty area of the screen don't take away the bottom sheet. 
Before going further, let's get some basics on bottom sheets.
There are two kinds of bottom sheets in material design: Persistent and Modal. 
In this example, we are going to see Persistent type. 
For Modal bottom sheet, check this article. https://fluttercentral.com/Articles/Post/1081 
This gives an alternate behavior, where touches on the empty area of the screen should take away the bottom sheet
Another example, showing how to send data to the model sheet. https://fluttercentral.com/Articles/Post/1110 
Here is the full code of this sample. In order to run this, copy paste this code into main.dart file in your newly created flutter project. 
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
void _showBottomSheetCallback() {
_scaffoldKey.currentState.showBottomSheet<void>((BuildContext context) {
return Container(
decoration: BoxDecoration(
border: Border(top: BorderSide(color: Colors.black)),
color: Colors.grey
),
child: Padding(
padding: const EdgeInsets.all(32.0),
child: Text('This is a Material persistent bottom sheet. Drag downwards to dismiss it.',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 24.0,
),
),
),
);
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home:Scaffold(
key: _scaffoldKey,
appBar: AppBar(
title: const Text('Persistent bottom sheet')
),
body: Center(
child: RaisedButton(
onPressed: _showBottomSheetCallback,
child: const Text('Show Persistent Bottom Sheet')
)
)
),
);
}
}
Hope this is helpful.
Thanks,
Srikanth
0 Comments
Login to comment.
Recent Comments

Be the first to Comment. You can ask a Query or Share your toughts or Just say thanks.




Recent articles

Horizontal List View

Check out this article on Horizontal List View

Read full post

How to get the Width and Height of the Screen in Flutter?

Check out this article on How to get the Width and Height of the Screen in Flutter?

Read full post

How to add a Footer Buttons in Flutter?

Check out this article on How to add a Footer Buttons in Flutter?

Read full post

TextField in Flutter

Check out this article on TextField in Flutter

Read full post

How to Draw a Triangle using Canvas in Flutter?

Check out this article on How to Draw a Triangle using Canvas in Flutter?

Read full post

url_launcher Package - Lets Launch URL, Send Email, Make Call or Send SMS in Flutter

Check out this article on url_launcher Package - Lets Launch URL, Send Email, Make Call or Send SMS in Flutter

Read full post

Error: The name 'RangeSlider' is defined in the libraries 'package:flutter/src/material/range_slider.dart' and 'package:flutter_range_slider/src/flutter_range_slider.dart'.

Check out this article on Error: The name 'RangeSlider' is defined in the libraries 'package:flutter/src/material/range_slider.dart' and 'package:flutter_range_slider/src/flutter_range_slider.dart'.

Read full post

How to create a persistent bottom sheet in Flutter?

Check out this article on How to create a persistent bottom sheet in Flutter?

Read full post

How to draw a Decorative Horizontal line in Flutter?

Check out this article on How to draw a Decorative Horizontal line in Flutter?

Read full post

How to fetch an Image from Internet in Flutter

Check out this article on How to fetch an Image from Internet in Flutter

Read full post

© 2018 - Fluttercentral | Email to me - Seven.srikanth@gmail.com

Except as otherwise noted, this work is licensed under a Creative Commons Attribution 4.0 International License , and code samples are licensed under the BSD License.