I want to put custom widget: https://github.com/GotJimmy/accordion as AlertDialog content. In general, it works with approach as below:
showAlertDialog(BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
scrollable: true,
title: Text("Select category"),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: Accordion(
maxOpenSections: 1,
headerTextStyle: TextStyle(color: Colors.white, fontSize: 17, fontWeight: FontWeight.bold),
leftIcon: Icon(Icons.audiotrack, color: Colors.white),
children: [
AccordionSection(
isOpen: true,
headerText: 'Introduction',
content: Icon(Icons.airplanemode_active, size: 200, color: Colors.amber),
),
AccordionSection(
isOpen: true,
headerText: 'About Us',
content: Icon(Icons.airline_seat_flat, size: 120, color: Colors.blue[200]),
),
AccordionSection(
isOpen: true,
headerText: 'Company Info',
content: Icon(Icons.airplay, size: 70, color: Colors.green[200]),
),
AccordionSection(
isOpen: true,
headerText: 'Contact',
content: Icon(Icons.contact_page, size: 300, color: Colors.grey),
),
AccordionSection(
isOpen: false,
headerText: 'Technical Jobs',
content: Icon(Icons.computer, size: 200, color: Colors.amber),
),
AccordionSection(
isOpen: false,
headerText: 'Administrative Jobs',
content: Icon(Icons.emoji_people, size: 200, color: Colors.amber),
),
AccordionSection(
isOpen: false,
headerText: 'Culture',
content: Icon(Icons.calculate_rounded, size: 200, color: Colors.green),
),
AccordionSection(
isOpen: false,
headerText: 'Community',
content: Icon(Icons.commute_outlined, size: 200, color: Colors.blueAccent),
),
AccordionSection(
isOpen: false,
headerText: 'Friends Of Us',
content: Icon(Icons.child_friendly, size: 200, color: Colors.red),
),
AccordionSection(
isOpen: false,
headerText: 'Map',
content: Icon(Icons.map, size: 200, color: Colors.blue),
),
],
),
),
],
),
);
});
}
However, I'm not satisfied with that. I want to force alert dialog to fit child widget height whan items are expanded/collapsed to avoid redundant empty space below my expandable list - dialog size should be changed on expand/collaps group when required or display scrollbar if there's no room to display all items. This is what I'm getting now:
Any ideas?