[Flutter/dart] Scroll inside ModalBottomSheet
Overview
In the smartphone app, the menu may appear from the bottom of the screen when you select the menu, and in Flutter you can create it with showModalBottomSheet().
However, if there are many menus you want to display, you will not be able to fit them in the ModalBottomSheet. In such cases, we will show you how to scroll within the ModalBottomSheet.
Method
Create a DraggableScrollableSheet in the showModalBottomSheet builder as shown below, and specify the widget you want to display in its child.
@override
Widget build(BuildContext context) {
List<String> menues=List.generate(20, (index) => "メニュー${index}");
return Scaffold(
appBar: AppBar(
title: Text('demo'),
),
body: Container(
padding: const EdgeInsets.all(16),
child: RaisedButton(
child: Text('show menu'),
onPressed: ()async{
int t=await showModalBottomSheet(
context: context,
builder: (context)=> DraggableScrollableSheet( //here!
initialChildSize: 1,
builder: (BuildContext context, ScrollController
scrollController)=>
Container(
child: ListView(
shrinkWrap: true,
children: menues.map((e) =>
ListTile(
title: Text(
e,
style: TextStyle(
fontSize: 18
),
),
)
).toList(),
),
)
)
);
},
)
)
);
}
initialChildSize sets the percentage of the parent widget.
You will be able to scroll like the video below!
Recent Posts
See AllWhat want to do I want to create an input form using TextField. For example, if the input content is a monetary amount, I would like to...
What want to do There is a variable that remain unchanged once the initial value is determined. However, it cannot be determined yet when...
What want to do As the title suggests. Place two widgets in one line on the screen One in the center of the screen and the other on the...
Comments