Files
fcs/lib/pages/widgets/fcs_expansion_tile.dart

72 lines
2.0 KiB
Dart
Raw Normal View History

2020-10-07 02:33:06 +06:30
import 'package:fcs/helpers/theme.dart';
2020-09-15 07:13:41 +06:30
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
2020-10-13 07:50:25 +06:30
import 'callbacks.dart';
2020-10-07 02:33:06 +06:30
2020-09-15 07:13:41 +06:30
class FcsExpansionTile extends StatefulWidget {
final ValueChanged<bool> onExpansionChanged;
final CallBack onEditPress;
final List<Widget> children;
final Widget title;
final bool isEdit;
const FcsExpansionTile(
{this.onExpansionChanged,
this.children,
this.title,
this.isEdit = false,
this.onEditPress});
@override
_FcsExpansionTileState createState() => _FcsExpansionTileState();
}
class _FcsExpansionTileState extends State<FcsExpansionTile> {
bool expanded;
@override
void initState() {
this.expanded = false;
super.initState();
}
@override
Widget build(BuildContext context) {
return Theme(
data: ThemeData(
2020-09-18 21:33:41 +06:30
accentColor: primaryColor, dividerColor: Colors.transparent),
2020-09-15 07:13:41 +06:30
child: ExpansionTile(
onExpansionChanged: (value) {
setState(() {
expanded = value;
});
if (widget.onExpansionChanged != null)
widget.onExpansionChanged(value);
},
title: widget.title,
children: widget.children,
trailing: widget.isEdit
? IconButton(
2020-09-18 21:33:41 +06:30
padding: EdgeInsets.all(0),
iconSize: 20,
2020-09-15 07:13:41 +06:30
onPressed: () =>
widget.onEditPress != null ? widget.onEditPress() : {},
icon: Icon(
Icons.edit,
color: primaryColor,
))
: AnimatedSwitcher(
child: expanded
? Icon(
Icons.remove,
color: primaryColor,
)
: Icon(
Icons.add,
color: primaryColor,
),
duration: Duration(seconds: 2)),
childrenPadding: EdgeInsets.all(18),
),
);
}
}