2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 13:36:50 +00:00

Expandable panel for subcategory and part list for category view

This commit is contained in:
Oliver Walters 2020-04-05 21:35:11 +10:00
parent 1f88f1d8ab
commit 57ab6546ab

View File

@ -83,6 +83,9 @@ class _CategoryDisplayState extends State<CategoryDisplayWidget> {
}); });
} }
bool _subcategoriesExpanded = false;
bool _partListExpanded = true;
Widget getCategoryDescriptionCard() { Widget getCategoryDescriptionCard() {
if (category == null) { if (category == null) {
return Card( return Card(
@ -112,27 +115,63 @@ class _CategoryDisplayState extends State<CategoryDisplayWidget> {
title: Text(_titleString), title: Text(_titleString),
), ),
drawer: new InvenTreeDrawer(context), drawer: new InvenTreeDrawer(context),
body: Center( body: ListView(
child: Column( //mainAxisAlignment: MainAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, //mainAxisSize: MainAxisSize.max,
mainAxisSize: MainAxisSize.max,
children: <Widget>[ children: <Widget>[
getCategoryDescriptionCard(), getCategoryDescriptionCard(),
Text( ExpansionPanelList(
"Subcategories - ${_subcategories.length}", expansionCallback: (int index, bool isExpanded) {
textAlign: TextAlign.left, print("callback!");
style: TextStyle(fontWeight: FontWeight.bold), setState(() {
switch (index) {
case 0:
_subcategoriesExpanded = !isExpanded;
break;
case 1:
_partListExpanded = !isExpanded;
break;
default:
break;
}
});
},
children: <ExpansionPanel> [
ExpansionPanel(
headerBuilder: (BuildContext context, bool isExpanded) {
return ListTile(
title: Text("Subcategories"),
trailing: Text("${_subcategories.length}"),
onTap: () {
setState(() {
_subcategoriesExpanded = !_subcategoriesExpanded;
});
},
);
},
body: SubcategoryList(_subcategories),
isExpanded: _subcategoriesExpanded,
),
ExpansionPanel(
headerBuilder: (BuildContext context, bool isExpanded) {
return ListTile(
title: Text("Parts"),
trailing: Text("${_parts.length}"),
onTap: () {
setState(() {
_partListExpanded = !_partListExpanded;
});
},
);
},
body: PartList(_parts),
isExpanded: _partListExpanded,
)
],
), ),
Expanded(child: SubcategoryList(_subcategories)),
Divider(),
Text("Parts - ${_parts.length}",
textAlign: TextAlign.left,
style: TextStyle(fontWeight: FontWeight.bold),
),
Expanded(child: PartList(_parts)),
] ]
) )
)
); );
} }
} }
@ -171,7 +210,9 @@ class SubcategoryList extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListView.builder(itemBuilder: _build, itemCount: _categories.length); return ListView.builder(
shrinkWrap: true,
itemBuilder: _build, itemCount: _categories.length);
} }
} }
@ -217,6 +258,8 @@ class PartList extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListView.builder(itemBuilder: _build, itemCount: _parts.length); return ListView.builder(
shrinkWrap: true,
itemBuilder: _build, itemCount: _parts.length);
} }
} }